我有一个厨师食谱来引导一些我已经使用了很长时间的工作节点,并且有一段时间我第一次需要增加我的工作池的大小,但发现新节点不是由于 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
/var/cache/yum/x86_64/7/abc-os/gen
并在返回中查询 repo 的 sqlite 文件:
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。