Linux

yum 依賴解析不起作用

  • April 11, 2018

我有一個廚師食譜來引導一些我已經使用了很長時間的工作節點,並且有一段時間我第一次需要增加我的工作池的大小,但發現新節點不是由於 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。

問題原來是有人只為其他 cyrus 軟體包配置了yum 版本鎖定配置,cyrus-sasl-lib但沒有配置,這似乎導致 yum 無法正確解析版本。

可能最好的選擇是添加具有匹配版本的其他包,但由於這些特定的包對這個平台的目前化身影響不大,我只是cyrus-sasl-lib完全從版本鎖定中刪除。現在 yum 將所有內容安裝/升級到最新版本,實例自行引導而不會再次出現問題。

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

我認為您應該解除安裝 cyrus-sasl-lib 並使用好的版本重新安裝。

引用自:https://serverfault.com/questions/907238