Linux
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
/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 並使用好的版本重新安裝。