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
正确更新旧软件包,一切又回到了正轨。