Centos

修復拙劣的 yum 更新:無法刪除重複項

  • May 18, 2020

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正確更新舊軟體包,一切又回到了正軌。

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