hao32的个人日志

解决yum update时提示Transaction Check Error的问题

今天帮一个朋友update系统时,发现其中一台server居然提示:
Transaction Check Error:
file /usr/lib/perl5/5.8.8/CGI.pm from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/lib/perl5/5.8.8/Digest.pm from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/c2ph.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/cpan.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/dprofpp.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlvms.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlvos.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
中间省略100行,都是关于perl的
file /usr/share/man/man1/perlwin32.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlxs.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/perlxstut.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/piconv.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/splain.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man1/xsubpp.1.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386
file /usr/share/man/man3/CGI.3pm.gz from install of perl-5.8.8-32.el5_7.6.x86_64 conflicts with file from package perl-5.8.8-32.el5_6.3.i386

Error Summary
-------------
经过仔细观察是perl的问题,其他软件单独update都没有问题。 看看错误内的大部分信息,就大概可以猜出问题的症结。64位系统内的i386和x64软件的冲突,那么卸载掉i386的冲突相关软件,一般可以解决问题。 两种情况,要不把perl的升级忽略掉,要不卸载了perl的i386,如果是其他软件的冲突,一样对待。
yum update --exclude=perl
找出要冲突的软件
rpm -q perl --qf '%{NAME} %{VERSION} %{ARCH}'
得到输出:
perl 5.8.8 x86_64
perl 5.8.8 i386
然后卸载掉冲突的i386包:
rpm -e perl.i386
再次升级,搞定! 其他软件请自行参考本文即可。

1 评论

  1. 还好。还在火星。。
    本文发表于 星期六 2012-02-04 20:31

发表回复