首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >重复包-更新/升级- Centos

重复包-更新/升级- Centos
EN

Stack Overflow用户
提问于 2013-10-17 12:27:01
回答 9查看 59.1K关注 0票数 44

当我尝试在CentOS 6.3机器上运行yum update时,我得到了错误,并告诉我要运行yum checkyum check的输出为:

代码语言:javascript
复制
➜  ~  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,但得到了:

错误:发现多语言版本问题。这通常意味着根本原因是其他原因,而多库版本检查只是指出存在问题。

EN

回答 9

Stack Overflow用户

发布于 2013-12-04 16:12:44

对我来说,看起来你在升级包的过程中重新启动了你的电脑(或者它崩溃了)。所以安装了新的软件包,但没有删除旧的软件包。

首先看看您是否有任何未完成的事务:yum-complete-transaction

如果这没有帮助,那么看看包清理工具,它是yum-utils包的一部分。

包-清理--dupes列出重复的包

清理包--删除重复的包

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

票数 55
EN

Stack Overflow用户

发布于 2018-10-25 11:11:25

这就是我用471个副本修复一台CentOS 7服务器的方法。

首先,我必须安装yum utils:

代码语言:javascript
复制
yum install yum-utils

我已经尝试了yum-complete-transaction和其他东西,但没有成功,我放弃了这个事务:

代码语言:javascript
复制
yum-complete-transaction --cleanup-only

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

代码语言:javascript
复制
package-cleanup --dupes | sort -u > dupes.out

然后,我从这个排序的文件中获得了一个卸载列表:

代码语言:javascript
复制
cat dupes.out | grep -v 'Loaded plugins:' | sort -u | awk 'NR % 2 == 1' > uninstall.in

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

代码语言:javascript
复制
for f in `cat uninstall.in`; do rpm -e --nodeps -f --justdb $f; done

最后,我可以继续定期进行系统升级:

代码语言:javascript
复制
yum upgrade

需要注意的几点:

  • 在这种情况下,我仔细检查了"package-cleanup --dupes“的输出,以确保如何生成卸载列表。
  • 我尝试了”重新安装较新的“方法来颠倒列表(awk‘NR%2 == 0'),但在该版本中有许多软件包不再可用(服务器一年来一直保持这种状态)。
  • 我考虑从rpmdb中删除较新的软件包,所以以后升级应该重新安装所有内容,但在检查文件系统安装的文件后,我清楚地看到新版本已经存在,其中只有较旧的rpm条目仍在rpmdb中。也许你的情况不同。
票数 45
EN

Stack Overflow用户

发布于 2014-02-11 01:15:05

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

首先,我使用remove foo-package-*

  • Then命令它删除所有软件包,通过run

指定事务的确切版本,命令它安装

  • 以前的版本

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

这甚至适用于像nssyum这样的系统包。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19418301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档