2016-02-17 56 views
0

大家下午好,Rpm-spec文件。运行yum groupinstall

我目前正在建立一个RPM,有一些要求我还没有在网上找到答案。我把这个缩小到了一个单一的问题。

通常,当我从命令行运行安装时,其中一个步骤是运行以下命令yum groupinstall "Compatibility libraries",它在我的64位桌面上安装32位兼容性库。我想知道是否有办法在我的RPM-spec文件的Requires:字段中完成此操作,因为我只找到了一种方法来要求非常特定的RPM for dependencies?

我总是可以添加10到15个独立软件包,与yum groupinstall "Compatibility Libraries"一起安装,但我希望有更好的选择。

RPM的描述: 我的RPM本质上是非常基本的。它会将多个tar文件解压到不同的位置,覆盖整个主安装目录中的文件,安装兼容库,然后继续启动服务。

如果有人需要更多的信息,我想完成请让我知道。谢谢。

回答

1

您只能在Requires:行中要求特定的程序包,而不要求组。您应该绝对不要在%post脚本中运行yum,因为(a)您隐藏了您的依赖关系,并且没有人喜欢看到他们没有预料到的事情,(b)您可能最终陷入困境,因为yum%post需要等待现有的yum进程退出。

对于Requires:,rpm构建过程通常会为您解决问题。您仍然需要手动指定相应的BuildRequires:依赖关系,这是构建所需的包。

如果您想更新您的问题并提供更多详细信息(例如,指向spec文件的链接以及您要做什么的描述,如果从规范中不明显),也许我们可以拿出解决方案更好

+0

嗯,你写的东西几乎巩固了我的知识。从我收集的信息来看,最好在我的RPM中包含一个'%pre'节,它将安装“兼容性库”。你提到'%post'中的'yum'可能会等到第一个yum。有没有办法克服这一点,你可以想到的? – bluerojo

+0

为了澄清,我的RPM会放下一对tar文件,安装compat库,然后启动几个进程。我无法发布我的规格文件。我可以完成一切,但通过此rpm已安装我的兼容性库 – bluerojo

+0

如果我可以在规范文件的“需求:”部分中安装“兼容性库”,这将完美工作。 – bluerojo