【问题标题】:RPM interdependency - how to solve itRPM 相互依赖 - 如何解决它
【发布时间】:2017-06-27 14:45:46
【问题描述】:

鉴于: 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 版本。 1.1。因此,它带来了 Y 版本。 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)?

【问题讨论】:

  • 你试过--no-deps标志吗?

标签: rpm yum


【解决方案1】:

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

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

(旁白) 我忘记了是否可以在 yum excludes 中提及显式版本。

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

例如将“要求:Z”更改为“要求:Z = 1.1”

【讨论】:

    【解决方案2】:

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

    yum install Z-1.1 X-1.1 Y-1.1
    

    如果不指定版本,yum 会检索最新的。

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

    Requires: Z=1.1
    

    Conflicts: Z > 1.1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多