yum error - 包是重复的

问题描述 投票:31回答:5

当我尝试在CentOS 6.3盒子上运行yum update时,我遇到了错误,并说要运行yum checkyum 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

知道如何修复这些包吗?我试过yum reinstall xinetd tzdata nss-util nss-softokn nss nspr iputils glibc glibc-common glibc-devel但得到了:

错误:找到Multilib版本问题。这通常意味着根本原因是其他原因,而multilib版本检查只是指出存在问题。

centos yum
5个回答
44
投票

对我而言,在您升级软件包的过程中,您似乎重新启动了计算机(或者它已崩溃)。所以安装新包,但旧包没有删除。

首先查看您是否有任何未完成的交易:yum-complete-transaction

如果这没有帮助,那么看看作为yum-utils包的一部分的package-cleanup工具。

package-cleanup --dupes列出重复的包

package-cleanup --cleandupes删除重复的包

但是在删除重复项之前,请小心使用该命令并创建备份。


16
投票

这是我用471个dupes修复一个CentOS 7服务器的方式。

首先我必须安装yum utils:

yum install yum-utils

尝试了yum-complete-transaction和其他没有运气的东西,我放弃了交易:

yum-complete-transaction --cleanup-only

然后我得到了一个重复包的排序列表,所以我可以识别旧版本以删除过滤偶数和奇数行:

package-cleanup --dupes | sort -u > dupes.out

然后我通过这种方式从这个排序文件中获得了一个卸载列表

cat dupes.out | grep -v 'Loaded plugins:' | sort -u | awk 'NR % 2 == 1' > uninstall.in

然后我从rpm数据库中删除了旧版本:

for f in `cat uninstall.in`; do rpm -e --nodeps -f --justdb $f; done

最后,我可以继续进行常规系统升级:

yum upgrade

有些事要注意:

  • 在这种情况下,我仔细检查了“package-cleanup --dupes”输出,以确保如何生成卸载列表。
  • 我已经尝试过“重新安装更新”的方法来反转列表(awk'NR%2 == 0')但是在那个版本中有很多软件包不再可用(服务器以这种方式保留了一年)。
  • 我想从rpmdb中删除较新的软件包,因此稍后升级应重新安装所有内容,但在检查文件系统安装文件后,我很清楚新版本已经到位,只有较旧的rpm条目仍在rpmdb中。也许你的情况有所不同。

9
投票

我可以使用yum shell删除所有重复项:

  1. 我首先命令它使用remove foo-package-*删除所有包
  2. 然后通过指定确切的版本install foo-package-3.14.1-5.i386 foo-package-3.14.1-5.x86_64来命令它安装以前的版本
  3. run承诺交易

之后,副本消失了,我可以毫无问题地将系统更新到当前包,而不会引入任何新的重复项。

这甚至适用于nssyum等系统软件包。


2
投票

yum重新安装包 - 最新版本


0
投票

几个月前,我在升级我的fedora之后也遇到了这个问题。

我也尝试使用package-cleanup,它开始删除所需的libs,使我的工作站无法工作。 Luckely我可以重新安装Fedora而不是删除我的主分区。

昨天发生了同样的问题,我修复了删除旧版本的副本。

例如:我得到了这些重复项:oxygen-icon-theme-4.8.3-1.fc16.noarch与oxygen-icon-theme-4.8.2-1.fc16.noarch sane-backends-libs-1.0重复。 22-10.fc16.i686与sane-backends-libs-1.0.22-8.fc16.i686重复

我做的是我使用'yum remove sane-backends-libs-1.0.22-8.fc16.i686',之后是yum更新。

一切都不顺利。

Ĵ


来自http://forums.fedoraforum.org/showthread.php?t=268328

© www.soinside.com 2019 - 2024. All rights reserved.