Jus*_*tin 36 centos yum duplicates centos7
当我尝试yum update
在CentOS 6.3机器上运行时,我遇到了错误,并表示要运行yum check
.输出yum check
是:
? ~ yum check
Loaded plugins: fastestmirror
glibc-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-2.12-1.107.el6_4.4.x86_64
glibc-common-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-common-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-devel-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 has missing requires of glibc-headers = ('0', '2.12', '1.107.el6_4.5')
iputils-20071127-17.el6_4.2.x86_64 is a duplicate with iputils-20071127-17.el6_4.x86_64
nspr-4.9.5-2.el6_4.x86_64 is a duplicate with nspr-4.9.2-1.el6.x86_64
nss-3.14.3-4.el6_4.x86_64 is a duplicate with nss-3.14.0.0-12.el6.x86_64
nss-softokn-3.14.3-3.el6_4.x86_64 is a duplicate with nss-softokn-3.12.9-11.el6.x86_64
nss-util-3.14.3-3.el6_4.x86_64 is a duplicate with nss-util-3.14.0.0-2.el6.x86_64
tzdata-2013g-1.el6.noarch is a duplicate with tzdata-2013c-2.el6.noarch
2:xinetd-2.3.14-39.el6_4.x86_64 is a duplicate with 2:xinetd-2.3.14-38.el6.x86_64
Error: check all
Run Code Online (Sandbox Code Playgroud)
知道如何修复这些包吗?我试过yum reinstall xinetd tzdata nss-util nss-softokn nss nspr iputils glibc glibc-common glibc-devel
但得到了:
错误:找到Multilib版本问题.这通常意味着根本原因是其他原因,而multilib版本检查只是指出存在问题.
use*_*360 46
对我而言,在您升级软件包的过程中,您似乎重新启动了计算机(或者它已崩溃).所以安装新包,但旧包没有删除.
首先查看您是否有任何未完成的交易:yum-complete-transaction
如果这没有帮助,那么看看作为yum-utils包的一部分的package-cleanup工具.
package-cleanup --dupes 列出重复的包
package-cleanup --cleandupes 删除重复的包
但是请小心使用该命令并在删除重复项之前创建备份.
小智 31
这是我用471个dupes修复一个CentOS 7服务器的方式.
首先我必须安装yum utils:
yum install yum-utils
Run Code Online (Sandbox Code Playgroud)
尝试了yum-complete-transaction和其他没有运气的东西,我放弃了交易:
yum-complete-transaction --cleanup-only
Run Code Online (Sandbox Code Playgroud)
然后我得到了一个重复包的排序列表,所以我可以识别旧版本以删除过滤偶数和奇数行:
package-cleanup --dupes | sort -u > dupes.out
Run Code Online (Sandbox Code Playgroud)
然后我通过这种方式从这个排序文件中获得了一个卸载列表
cat dupes.out | grep -v 'Loaded plugins:' | sort -u | awk 'NR % 2 == 1' > uninstall.in
Run Code Online (Sandbox Code Playgroud)
然后我从rpm数据库中删除了旧版本:
for f in `cat uninstall.in`; do rpm -e --nodeps -f --justdb $f; done
Run Code Online (Sandbox Code Playgroud)
最后,我可以继续进行常规系统升级:
yum upgrade
Run Code Online (Sandbox Code Playgroud)
有些事要注意:
我能够通过使用yum shell
以下方法删除所有重复项:
remove foo-package-*
install foo-package-3.14.1-5.i386 foo-package-3.14.1-5.x86_64
run
之后,副本消失了,我可以毫无问题地将系统更新到当前包,而不会引入任何新的重复项.
这甚至适用于像nss
或的系统包yum
.
尝试运行:
yum reinstall [package-new.version]
Run Code Online (Sandbox Code Playgroud)
这意味着,如果你得到的输出yum check
是:
# yum check
Loaded plugins: fastestmirror
nss-3.14.3-4.el6_4.x86_64 is a duplicate with nss-3.14.0.0-12.el6.x86_64
Run Code Online (Sandbox Code Playgroud)
重新安装:
yum reinstall nss-3.14.3-4.el6_4.x86_64
Run Code Online (Sandbox Code Playgroud)