我正在寻求 RPM 专家的帮助。
假设我有一个 RPM 包A
,它依赖于包B
。RPMA
的规范已Requires:B
启用autoprov
并autoreq
启用。
当我A
在 centos 6.5 机器上使用以下方式安装RPM 时RPM version 4.8.0
:
yum install A
- rpm
A
首先安装,然后安装B
。 - 安装
B
可能会部分失败。也就是说,A
即使依赖项的安装B
失败,也会安装。
这是预期的行为吗?(B
之前不应该安装吗A
?)
不同版本(例如 el5)是否会有相同的行为?
我希望依赖项能够被安装前主软件包已安装。如果某个依赖项安装失败,则将阻止主软件包的安装。
还有其他方法可以实现我的要求吗?
谢谢。
答案1
Requires
假设您在运行时需要此依赖项。例如,如果您输入Requires
,firefox.spec
则当用户运行时,您将安装此依赖项/usr/bin/firefox
。
如果您需要在 rpm 脚本执行期间使用它,那么您需要说明在哪个阶段需要它。例如:
Requires(pre): perl
如果你在多个部分都需要它,则需要多次列出它。例如:
Requires(pre): perl
Requires(preun): perl
有关详细信息,请参阅http://rpm.org/api/4.4.2.2/tsort.html