yum 依赖解析不起作用

yum 依赖解析不起作用

我有一个厨师配方来引导一些我已经使用了很长一段时间的工作节点,并且这是我第一次需要增加我的工作池的大小,但发现由于 yum 错误,新节点无法正确引导:

Error: Package: cyrus-sasl-md5-2.1.26-21.el7.x86_64 (abc-os)
           Requires: cyrus-sasl-lib(x86-64) = 2.1.26-21.el7
           Installed: cyrus-sasl-lib-2.1.26-20.el7_2.x86_64 (@abc-os)
               cyrus-sasl-lib(x86-64) = 2.1.26-20.el7_2

我们的内部仓库在哪里,abc-os以便我们可以锁定软件包版本。我自然而然地认为这是问题所在,但在检查仓库时,我发现两个软件包的完整集合21.el7 20.el7_2存在。

此外,跑步yum list available cyrus-sasl-md5还能带来:

cyrus-sasl-md5.i686       2.1.26-20.el7_2    abc-os
cyrus-sasl-md5.x86_64     2.1.26-21.el7      abc-os

并查询 repo 的 sqlite 文件/var/cache/yum/x86_64/7/abc-os/gen返回:

sqlite> SELECT name, arch, version, epoch, release FROM packages WHERE name LIKE 'cyrus%' ORDER BY arch, version, epoch, release, name;
cyrus-sasl-lib  i686        2.1.26      0           17.el7
cyrus-sasl-lib  i686        2.1.26      0           20.el7_2
cyrus-sasl-md5  i686        2.1.26      0           20.el7_2
cyrus-sasl-pla  i686        2.1.26      0           20.el7_2
cyrus-sasl      x86_64      2.1.26      0           17.el7
cyrus-sasl-dev  x86_64      2.1.26      0           17.el7
cyrus-sasl-lib  x86_64      2.1.26      0           17.el7
cyrus-sasl      x86_64      2.1.26      0           20.el7_2
cyrus-sasl-dev  x86_64      2.1.26      0           20.el7_2
cyrus-sasl-lib  x86_64      2.1.26      0           20.el7_2
cyrus-sasl-md5  x86_64      2.1.26      0           20.el7_2
cyrus-sasl-pla  x86_64      2.1.26      0           20.el7_2
cyrus-sasl      x86_64      2.1.26      0           21.el7
cyrus-sasl-dev  x86_64      2.1.26      0           21.el7
cyrus-sasl-lib  x86_64      2.1.26      0           21.el7
cyrus-sasl-md5  x86_64      2.1.26      0           21.el7
cyrus-sasl-pla  x86_64      2.1.26      0           21.el7

此刻我很困惑为什么会发生这种情况,以及该如何进一步深入研究这个问题。

作为参考,操作系统是 CentOS 7.2 x86_64。

答案1

cyrus-sasl-md5-2.1.26-21.el7.x86_64 要求 cyrus-sasl-lib 版本为 2.1.26-21,但您有另一个版本(2.1.26-20)。

我认为您应该卸载 cyrus-sasl-lib 并重新安装好的版本。

答案2

问题原来是有人配置了yum 版本锁定仅适用于 cyruscyrus-sasl-lib包,而不适用于其他 cyrus 包,这似乎导致 yum 无法正确解析版本。

最好的选择可能是添加其他具有匹配版本的软件包,但由于这些特定软件包对于此平台的当前版本影响不大,所以我干脆将cyrus-sasl-lib版本锁定全部移除。现在 yum 会将所有内容安装/升级到最新版本,并且实例可以自行引导,不会再出现问题。

相关内容