关于如何避免失败,有什么想法吗?
# yum update
Freeing read locks for locker 0x82: 4189/140342084876032
Freeing read locks for locker 0x84: 4189/140342084876032
Freeing read locks for locker 0x85: 4189/140342084876032
Freeing read locks for locker 0x86: 4189/140342084876032
Freeing read locks for locker 0x87: 4189/140342084876032
Freeing read locks for locker 0x9a: 4189/140342084876032
Freeing read locks for locker 0x9c: 4189/140342084876032
Freeing read locks for locker 0x9d: 4189/140342084876032
Freeing read locks for locker 0x9e: 4189/140342084876032
Freeing read locks for locker 0x9f: 4189/140342084876032
Freeing read locks for locker 0xa0: 4189/140342084876032
Freeing read locks for locker 0xa1: 4189/140342084876032
Freeing read locks for locker 0xa2: 4189/140342084876032
Freeing read locks for locker 0xa3: 4189/140342084876032
Freeing read locks for locker 0xa4: 4189/140342084876032
Freeing read locks for locker 0xa5: 4189/140342084876032
Freeing read locks for locker 0xa6: 4189/140342084876032
Freeing read locks for locker 0xa7: 4189/140342084876032
Freeing read locks for locker 0xa8: 4189/140342084876032
Freeing read locks for locker 0xa9: 4189/140342084876032
Freeing read locks for locker 0xaa: 4189/140342084876032
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* epel: mirrors.kernel.org
* extras: centos.mirror.freedomvoice.com
* updates: mirrors.sonic.net
Setting up Update Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package device-mapper-persistent-data.x86_64 0:0.2.8-2.el6 will be updated
---> Package device-mapper-persistent-data.x86_64 0:0.2.8-4.el6_5 will be an update
---> Package glibc-headers.x86_64 0:2.12-1.132.el6 will be updated
--> Processing Dependency: glibc-headers = 2.12-1.132.el6 for package: glibc-devel-2.12-1.132.el6.x86_64
---> Package glibc-headers.x86_64 0:2.12-1.132.el6_5.2 will be an update
---> Package httpd.x86_64 0:2.2.15-29.el6.centos will be updated
--> Processing Dependency: httpd = 2.2.15-29.el6.centos for package: 1:mod_ssl-2.2.15-29.el6.centos.x86_64
---> Package httpd.x86_64 0:2.2.15-30.el6.centos will be an update
---> Package kernel.x86_64 0:2.6.32-431.17.1.el6 will be installed
---> Package kernel-devel.x86_64 0:2.6.32-431.17.1.el6 will be installed
---> Package selinux-policy-targeted.noarch 0:3.7.19-231.el6_5.1 will be updated
---> Package selinux-policy-targeted.noarch 0:3.7.19-231.el6_5.3 will be an update
--> Finished Dependency Resolution
Error: Package: 1:mod_ssl-2.2.15-29.el6.centos.x86_64 (@base)
Requires: httpd = 2.2.15-29.el6.centos
Removing: httpd-2.2.15-29.el6.centos.x86_64 (@base)
httpd = 2.2.15-29.el6.centos
Updated By: httpd-2.2.15-30.el6.centos.x86_64 (updates)
httpd = 2.2.15-30.el6.centos
Error: Package: glibc-devel-2.12-1.132.el6.x86_64 (@base)
Requires: glibc-headers = 2.12-1.132.el6
Removing: glibc-headers-2.12-1.132.el6.x86_64 (@base)
glibc-headers = 2.12-1.132.el6
Updated By: glibc-headers-2.12-1.132.el6_5.2.x86_64 (updates)
glibc-headers = 2.12-1.132.el6_5.2
Available: glibc-headers-2.12-1.132.el6_5.1.x86_64 (updates)
glibc-headers = 2.12-1.132.el6_5.1
You could try using --skip-broken to work around the problem
** Found 34 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-2.2-4.el6_5.x86_64 is a duplicate with audit-2.2-2.el6.x86_64
audit-libs-2.2-4.el6_5.x86_64 is a duplicate with audit-libs-2.2-2.el6.x86_64
curl-7.19.7-37.el6_5.3.x86_64 is a duplicate with curl-7.19.7-37.el6_4.x86_64
device-mapper-multipath-0.4.9-72.el6_5.2.x86_64 is a duplicate with device-mapper-multipath-0.4.9-72.el6_5.1.x86_64
device-mapper-multipath-libs-0.4.9-72.el6_5.2.x86_64 is a duplicate with device-mapper-multipath-libs-0.4.9-72.el6_5.1.x86_64
2:ethtool-3.5-1.4.el6_5.x86_64 is a duplicate with 2:ethtool-3.5-1.2.el6_5.x86_64
glibc-2.12-1.132.el6_5.2.x86_64 is a duplicate with glibc-2.12-1.132.el6.x86_64
glibc-common-2.12-1.132.el6_5.2.x86_64 is a duplicate with glibc-common-2.12-1.132.el6.x86_64
glibc-devel-2.12-1.132.el6_5.2.x86_64 is a duplicate with glibc-devel-2.12-1.132.el6.x86_64
glibc-devel-2.12-1.132.el6_5.2.x86_64 has missing requires of glibc-headers = ('0', '2.12', '1.132.el6_5.2')
gnutls-2.8.5-14.el6_5.x86_64 is a duplicate with gnutls-2.8.5-13.el6_5.x86_64
httpd-2.2.15-29.el6.centos.x86_64 has missing requires of httpd-tools = ('0', '2.2.15', '29.el6.centos')
httpd-manual-2.2.15-30.el6.centos.noarch has missing requires of httpd = ('0', '2.2.15', '30.el6.centos')
iproute-2.6.32-32.el6_5.x86_64 is a duplicate with iproute-2.6.32-31.el6.x86_64
kernel-firmware-2.6.32-431.17.1.el6.noarch is a duplicate with kernel-firmware-2.6.32-431.11.2.el6.noarch
kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-431.11.2.el6.x86_64
kpartx-0.4.9-72.el6_5.2.x86_64 is a duplicate with kpartx-0.4.9-72.el6_5.1.x86_64
krb5-libs-1.10.3-15.el6_5.1.x86_64 is a duplicate with krb5-libs-1.10.3-10.el6_4.6.x86_64
libblkid-2.17.2-12.14.el6_5.x86_64 is a duplicate with libblkid-2.17.2-12.14.el6.x86_64
libcurl-7.19.7-37.el6_5.3.x86_64 is a duplicate with libcurl-7.19.7-37.el6_4.x86_64
libcurl-devel-7.19.7-37.el6_5.3.x86_64 is a duplicate with libcurl-devel-7.19.7-37.el6_4.x86_64
libtasn1-2.3-6.el6_5.x86_64 is a duplicate with libtasn1-2.3-3.el6_2.1.x86_64
libuuid-2.17.2-12.14.el6_5.x86_64 is a duplicate with libuuid-2.17.2-12.14.el6.x86_64
libxml2-2.7.6-14.el6_5.1.x86_64 is a duplicate with libxml2-2.7.6-14.el6.x86_64
mdadm-3.2.6-7.el6_5.2.x86_64 is a duplicate with mdadm-3.2.6-7.el6.x86_64
1:mod_ssl-2.2.15-30.el6.centos.x86_64 is a duplicate with 1:mod_ssl-2.2.15-29.el6.centos.x86_64
1:mod_ssl-2.2.15-30.el6.centos.x86_64 has missing requires of httpd = ('0', '2.2.15', '30.el6.centos')
nss-softokn-3.14.3-10.el6_5.x86_64 is a duplicate with nss-softokn-3.14.3-9.el6.x86_64
openssl-1.0.1e-16.el6_5.7.x86_64 is a duplicate with openssl-1.0.1e-16.el6_5.4.x86_64
openssl-1.0.1e-16.el6_5.14.x86_64 is a duplicate with openssl-1.0.1e-16.el6_5.7.x86_64
openssl-devel-1.0.1e-16.el6_5.14.x86_64 is a duplicate with openssl-devel-1.0.1e-16.el6_5.7.x86_64
selinux-policy-3.7.19-231.el6_5.3.noarch is a duplicate with selinux-policy-3.7.19-231.el6_5.1.noarch
tzdata-2014d-1.el6.noarch is a duplicate with tzdata-2014b-1.el6.noarch
util-linux-ng-2.17.2-12.14.el6_5.x86_64 is a duplicate with util-linux-ng-2.17.2-12.14.el6.x86_64
更新
yum-complete-transaction
我按要求安装并运行,它完成了一些事情并建议我运行package-cleanup --problems
,结果如下:
package-cleanup --problems
Loaded plugins: fastestmirror
Package httpd-manual-2.2.15-30.el6.centos.noarch requires httpd = ('0', '2.2.15', '30.el6.centos')
Package httpd-2.2.15-29.el6.centos.x86_64 requires httpd-tools = ('0', '2.2.15', '29.el6.centos')
Package mod_ssl-2.2.15-30.el6.centos.x86_64 requires httpd = ('0', '2.2.15', '30.el6.centos')
Package glibc-devel-2.12-1.132.el6_5.2.x86_64 requires glibc-headers = ('0', '2.12', '1.132.el6_5.2')
我绝对不是系统管理员,下一步该怎么做?
更新2
我跑了yum distro-sync
:
# yum distro-sync
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.hmc.edu
* epel: mirrors.kernel.org
* extras: centos.mirror.freedomvoice.com
* updates: mirrors.sonic.net
Setting up Distribution Synchronization Process
Resolving Dependencies
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.12-1.132.el6 will be updated
--> Processing Dependency: glibc-headers = 2.12-1.132.el6 for package: glibc-devel-2.12-1.132.el6.x86_64
---> Package glibc-headers.x86_64 0:2.12-1.132.el6_5.2 will be an update
---> Package httpd.x86_64 0:2.2.15-29.el6.centos will be updated
--> Processing Dependency: httpd = 2.2.15-29.el6.centos for package: 1:mod_ssl-2.2.15-29.el6.centos.x86_64
---> Package httpd.x86_64 0:2.2.15-30.el6.centos will be an update
--> Finished Dependency Resolution
Error: Package: 1:mod_ssl-2.2.15-29.el6.centos.x86_64 (@base)
Requires: httpd = 2.2.15-29.el6.centos
Removing: httpd-2.2.15-29.el6.centos.x86_64 (@base)
httpd = 2.2.15-29.el6.centos
Updated By: httpd-2.2.15-30.el6.centos.x86_64 (updates)
httpd = 2.2.15-30.el6.centos
Error: Package: glibc-devel-2.12-1.132.el6.x86_64 (@base)
Requires: glibc-headers = 2.12-1.132.el6
Removing: glibc-headers-2.12-1.132.el6.x86_64 (@base)
glibc-headers = 2.12-1.132.el6
Updated By: glibc-headers-2.12-1.132.el6_5.2.x86_64 (updates)
glibc-headers = 2.12-1.132.el6_5.2
Available: glibc-headers-2.12-1.132.el6_5.1.x86_64 (updates)
glibc-headers = 2.12-1.132.el6_5.1
You could try using --skip-broken to work around the problem
** Found 34 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-2.2-4.el6_5.x86_64 is a duplicate with audit-2.2-2.el6.x86_64
audit-libs-2.2-4.el6_5.x86_64 is a duplicate with audit-libs-2.2-2.el6.x86_64
curl-7.19.7-37.el6_5.3.x86_64 is a duplicate with curl-7.19.7-37.el6_4.x86_64
device-mapper-multipath-0.4.9-72.el6_5.2.x86_64 is a duplicate with device-mapper-multipath-0.4.9-72.el6_5.1.x86_64
device-mapper-multipath-libs-0.4.9-72.el6_5.2.x86_64 is a duplicate with device-mapper-multipath-libs-0.4.9-72.el6_5.1.x86_64
2:ethtool-3.5-1.4.el6_5.x86_64 is a duplicate with 2:ethtool-3.5-1.2.el6_5.x86_64
glibc-2.12-1.132.el6_5.2.x86_64 is a duplicate with glibc-2.12-1.132.el6.x86_64
glibc-common-2.12-1.132.el6_5.2.x86_64 is a duplicate with glibc-common-2.12-1.132.el6.x86_64
glibc-devel-2.12-1.132.el6_5.2.x86_64 is a duplicate with glibc-devel-2.12-1.132.el6.x86_64
glibc-devel-2.12-1.132.el6_5.2.x86_64 has missing requires of glibc-headers = ('0', '2.12', '1.132.el6_5.2')
gnutls-2.8.5-14.el6_5.x86_64 is a duplicate with gnutls-2.8.5-13.el6_5.x86_64
httpd-2.2.15-29.el6.centos.x86_64 has missing requires of httpd-tools = ('0', '2.2.15', '29.el6.centos')
httpd-manual-2.2.15-30.el6.centos.noarch has missing requires of httpd = ('0', '2.2.15', '30.el6.centos')
iproute-2.6.32-32.el6_5.x86_64 is a duplicate with iproute-2.6.32-31.el6.x86_64
kernel-firmware-2.6.32-431.17.1.el6.noarch is a duplicate with kernel-firmware-2.6.32-431.11.2.el6.noarch
kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-431.11.2.el6.x86_64
kpartx-0.4.9-72.el6_5.2.x86_64 is a duplicate with kpartx-0.4.9-72.el6_5.1.x86_64
krb5-libs-1.10.3-15.el6_5.1.x86_64 is a duplicate with krb5-libs-1.10.3-10.el6_4.6.x86_64
libblkid-2.17.2-12.14.el6_5.x86_64 is a duplicate with libblkid-2.17.2-12.14.el6.x86_64
libcurl-7.19.7-37.el6_5.3.x86_64 is a duplicate with libcurl-7.19.7-37.el6_4.x86_64
libcurl-devel-7.19.7-37.el6_5.3.x86_64 is a duplicate with libcurl-devel-7.19.7-37.el6_4.x86_64
libtasn1-2.3-6.el6_5.x86_64 is a duplicate with libtasn1-2.3-3.el6_2.1.x86_64
libuuid-2.17.2-12.14.el6_5.x86_64 is a duplicate with libuuid-2.17.2-12.14.el6.x86_64
libxml2-2.7.6-14.el6_5.1.x86_64 is a duplicate with libxml2-2.7.6-14.el6.x86_64
mdadm-3.2.6-7.el6_5.2.x86_64 is a duplicate with mdadm-3.2.6-7.el6.x86_64
1:mod_ssl-2.2.15-30.el6.centos.x86_64 is a duplicate with 1:mod_ssl-2.2.15-29.el6.centos.x86_64
1:mod_ssl-2.2.15-30.el6.centos.x86_64 has missing requires of httpd = ('0', '2.2.15', '30.el6.centos')
nss-softokn-3.14.3-10.el6_5.x86_64 is a duplicate with nss-softokn-3.14.3-9.el6.x86_64
openssl-1.0.1e-16.el6_5.7.x86_64 is a duplicate with openssl-1.0.1e-16.el6_5.4.x86_64
openssl-1.0.1e-16.el6_5.14.x86_64 is a duplicate with openssl-1.0.1e-16.el6_5.7.x86_64
openssl-devel-1.0.1e-16.el6_5.14.x86_64 is a duplicate with openssl-devel-1.0.1e-16.el6_5.7.x86_64
selinux-policy-3.7.19-231.el6_5.3.noarch is a duplicate with selinux-policy-3.7.19-231.el6_5.1.noarch
tzdata-2014d-1.el6.noarch is a duplicate with tzdata-2014b-1.el6.noarch
util-linux-ng-2.17.2-12.14.el6_5.x86_64 is a duplicate with util-linux-ng-2.17.2-12.14.el6.x86_64
答案1
按照它告诉你的去做。
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
完成后,运行yum distro-sync
以使您的系统与存储库重新同步。
现在,由于您之前中断了事务,数据库中现在有多个包的重复条目。您必须手动处理每个条目,这会变得非常混乱:
我要做的是,删除每个软件包的旧版本仅来自数据库然后重新安装该包。对于第一个,它看起来像:
rpm -e --justdb audit-2.2-2.el6.x86_64 ...
yum reinstall audit ...
将其余全部添加进去。
答案2
我也遇到过同样的问题。我尝试按照上面接受的答案操作,但发现由于先前存在的依赖关系,我无法删除太多内容。
最后,我安装yum-utils
并运行了以下命令:
package-cleanup --dupes
这立即解决了所有问题。然后我就可以yum update
更新 Apache 了,这正是我最初尝试做的。
我不知道自己当初是怎么陷入这种困境的,但现在看来已经解决了。
来源:http://blog.thismagpie.com/2013/05/how-to-get-rid-of-all-your-duplicate.html