修復拙劣的 yum 更新:無法刪除重複項
yum update
當它開始拋出一系列“非致命”錯誤時,我正在執行一個常式。它抱怨機器記憶體不足。儘管如此,yum 認為沒有必要停止這列火車。所以當它完成後,我又跑了一個
yum update
去檢查,它列出了 100 多個重複的包。顯然,記憶體不足意味著 yum 無法執行刪除重複項。經過一番搜尋,我找到了package-cleanup --cleandupes
命令。這整齊地列出了重複項並提出刪除它們。是的!我的喜悅是短暫的,當它出錯時:
iptables = 1.4.21-34.el7 is needed by (installed) iptables-services-1.4.21-34.el7.x86_64
雖然這是真的,但它列出的要刪除的副本是版本 1.4.21-33.el7。
手動嘗試時:
rpm -e --justdb iptables-services-1.4.21-33.el7.x86_64
它再次說:
error: Failed dependencies: iptables = 1.4.21-34.el7 is needed by (installed) iptables-services-1.4.21-34.el7.x86_64
它似乎不明白我想刪除版本'33’,而不是'34’。我該如何解決這個問題?
好的,嘗試更多選項來強制刪除重複項(順便說一下,該
rpm
命令不支持,它僅適用於安裝和更新軟體包),我遇到了該命令的--removenewestdupes
選項。package-cleanup
實際上,這是通過要求它刪除新版本而不是舊版本來解決問題的另一種方式。發行:
package-cleanup --cleandupes --removenewestdupes
…繼續進行,沒有錯誤。之後,我可以
yum update
正確更新舊軟體包,一切又回到了正軌。