RPM相互依赖性 - 如何解决它

时间:2017-06-27 14:45:47

标签: rpm yum

给定: 0)CentOS / Oracle Linux(yum包管理器)

1)RPM X取决于RPM Z

2)RPM Y取决于RPM Z

3)我们有可用的每个软件包的几个版本,它们彼此依赖于特定版本,因此当我们安装X版本时。 1.2它安装Z版。 1.2

情况: 我们在repo中有3个版本的X,Y,Z - 1.0,1.1和1.2 目前安装的版本是1.0(每个X,Y和Z),安装X ver。 1.1。因此它带来了Y ver。 1.2。然后,因为我们有Z版。 1.0安装,yum决定更新它,但找到最新的版本(1.2)并得到它。因此,当尝试将X从1.0升级到1.1时,我们得到版本1.2的X,Y,Z

有没有办法禁止yum安装Z ver。 1.2在这种情况下,无需同时更新两个包(X和Y为1.1)?

2 个答案:

答案 0 :(得分:0)

Yum有一个“exclude”指令,通常用于停止内核升级(但会阻止其他包升级)。

有关示例,请参阅https://www.howtogeek.com/50898/how-to-prevent-yum-from-updating-the-kernel/

(除了) 我忘记了在yum中是否可以提及明确的版本。

与此同时,您可能希望更改依赖关系以要求包Z的显式版本。

E.g。将“要求:Z”改为“要求:Z = 1.1”

答案 1 :(得分:0)

它应该适用于版本,例如:

yum install Z-1.1 X-1.1 Y-1.1

如果您未指定版本,yum将检索最新版本。

另一种方法是修改包和状态:

Requires: Z=1.1

Conflicts: Z > 1.1