CentOS Multilib版本冲突

我试图在我的CentOS 6.6上安装HHVM,但是这个multilib问题并没有让我知道。

运行yum upgrade ,我得到了这个结果。

 root@invictus [~]# yum upgrade Loaded plugins: fastestmirror Setting up Upgrade Process Loading mirror speeds from cached hostfile * aso: repo-uscentral.asonoc.com * base: centos.mirror.lstn.net * epel: fedora-epel.mirror.lstn.net * extras: repos.dfw.quadranet.com * rpmforge: mirror.nexcess.net * updates: repos.dfw.quadranet.com Resolving Dependencies --> Running transaction check ---> Package cpp.x86_64 0:4.4.7-11.el6 will be updated ---> Package cpp.x86_64 0:4.8.2-8.el6 will be an update --> Processing Dependency: libmpc.so.2()(64bit) for package: cpp-4.8.2-8.el6.x86_64 ---> Package curl.x86_64 0:7.19.7-40.el6_6.3 will be updated ---> Package curl.x86_64 0:7.29.0-4.el6 will be an update ---> Package gcc.x86_64 0:4.4.7-11.el6 will be updated ---> Package gcc.x86_64 0:4.8.2-8.el6 will be an update ---> Package gcc-c++.x86_64 0:4.4.7-11.el6 will be updated ---> Package gcc-c++.x86_64 0:4.8.2-8.el6 will be an update ---> Package gmp.x86_64 0:4.3.1-7.el6_2.2 will be updated ---> Package gmp.x86_64 1:4.3.2-4.el6 will be an update ---> Package libcurl.x86_64 0:7.19.7-40.el6_6.3 will be updated ---> Package libcurl.x86_64 0:7.29.0-4.el6 will be an update ---> Package libevent.x86_64 0:1.4.13-4.el6 will be updated ---> Package libevent.x86_64 0:1.4.14b-2.hphp.el6 will be an update ---> Package libgcc.x86_64 0:4.4.7-11.el6 will be updated ---> Package libgcc.x86_64 0:4.8.2-8.el6 will be an update ---> Package libgomp.x86_64 0:4.4.7-11.el6 will be updated ---> Package libgomp.x86_64 0:4.8.2-8.el6 will be an update ---> Package libstdc++.x86_64 0:4.4.7-11.el6 will be updated ---> Package libstdc++.x86_64 0:4.8.2-8.el6 will be an update ---> Package libstdc++-devel.x86_64 0:4.4.7-11.el6 will be updated ---> Package libstdc++-devel.x86_64 0:4.8.2-8.el6 will be an update ---> Package libtool.x86_64 0:2.2.6-15.5.el6 will be updated ---> Package libtool.x86_64 0:2.4.2-21.el6 will be an update ---> Package libtool-ltdl.x86_64 0:2.2.6-15.5.el6 will be updated ---> Package libtool-ltdl.x86_64 0:2.4.2-21.el6 will be an update ---> Package libtool-ltdl-devel.x86_64 0:2.2.6-15.5.el6 will be updated ---> Package libtool-ltdl-devel.x86_64 0:2.4.2-21.el6 will be an update ---> Package mpfr.x86_64 0:2.4.1-6.el6 will be updated ---> Package mpfr.x86_64 0:2.4.2-1.el6 will be an update --> Running transaction check ---> Package libmpc.x86_64 0:0.8.3-0.3.svn855.el6 will be installed --> Finished Dependency Resolution Error: Multilib version problems found. This often means that the root cause is something else and multilib version checking is just pointing out that there is a problem. Eg.: 1. You have an upgrade for libgcc which is missing some dependency that another package requires. Yum is trying to solve this by installing an older version of libgcc of the different architecture. If you exclude the bad architecture yum will tell you what the root cause is (which package requires what). You can try redoing the upgrade with --exclude libgcc.otherarch ... this should give you an error message showing the root cause of the problem. 2. You have multiple architectures of libgcc installed, but yum can only see an upgrade for one of those arcitectures. If you don't want/need both architectures anymore then you can remove the one with the missing update and everything will work. 3. You have duplicate versions of libgcc installed already. You can use "yum check" to get yum show these errors. ...you can also use --setopt=protected_multilib=false to remove this checking, however this is almost never the correct thing to do as something else is very likely to go wrong (often causing much more problems). Protected multilib versions: libgcc-4.8.2-8.el6.x86_64 != libgcc-4.4.7-11.el6.i686 root@invictus [~]# 

运行yum check

 root@invictus [~]# yum check Loaded plugins: fastestmirror python-libs-2.6.6-52.el6.x86_64 has missing requires of libffi.so.5()(64bit) Error: check all root@invictus [~]# 

问题是在RHEL6 / CentOS6中没有libgcc.x86_64 0:4.8.2-8.el6包。 EL6的当前版本是4.4.7-11,这是您当前安装的版本。

在你面前的任务是找出为什么yum首先find了这样一个包。

首先,完全清理你的yumcaching。 有人可能会意外地build立了这样一个软件包,并在稍后被拉出,但是你的系统仍然有元数据指向它。

 yum clean all 

其次,找出yum 认为这样一个包是从哪里来的。 跑:

 yum list all libgcc 

在一个干净的CentOS 6.6系统上,你应该得到以下输出:

 Installed Packages libgcc.x86_64 4.4.7-11.el6 @base Available Packages libgcc.i686 4.4.7-11.el6 base 

如果你有其他的东西,这个库会被识别出来,然后你可以禁用这个回购站,联系它的维护者,怀疑恶意的活动等等。

如果你得到相同的输出,那么你应该可以继续进行系统更新。

我有类似的问题。 当我尝试更新centos7我得到的结果:

 Multilib version problems found. This often means that the root cause is something else and multilib version checking is just pointing out that there is a problem. Eg.: 1. You have an upgrade for device-mapper-libs which is missing some dependency that another package requires. Yum is trying to solve this by installing an older version of device-mapper-libs of the different architecture. If you exclude the bad architecture yum will tell you what the root cause is (which package requires what). You can try redoing the upgrade with --exclude device-mapper-libs.otherarch ... this should give you an error message showing the root cause of the problem. 2. You have multiple architectures of device-mapper-libs installed, but yum can only see an upgrade for one of those architectures. If you don't want/need both architectures anymore then you can remove the one with the missing update and everything will work. 3. You have duplicate versions of device-mapper-libs installed already. You can use "yum check" to get yum show these errors. ...you can also use --setopt=protected_multilib=false to remove this checking, however this is almost never the correct thing to do as something else is very likely to go wrong (often causing much more problems). Chronione wersje multilib: 7:device-mapper-libs-1.02.135-1.el7_3.2.x86_64 != 7:device-mapper-libs-1.02.135-1.el7_3.1.i686 

在我的情况下,我有device-mapper-libs 。 在第一步检查重复包:

 yum list --showduplicates device-mapper-libs-1.02.135-1.el7_3.1 Wczytane wtyczki: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: centos1.hti.pl * epel: ftp.icm.edu.pl * extras: centos1.hti.pl * nux-dextop: li.nux.ro * updates: ftp.icm.edu.pl * webtatic: uk.repo.webtatic.com Zainstalowane pakiety device-mapper-libs.i686 7:1.02.135-1.el7_3.1 @updates device-mapper-libs.x86_64 7:1.02.135-1.el7_3.1 @updates Dostępne pakiety device-mapper-libs.i686 7:1.02.135-1.el7_3.1 updates device-mapper-libs.x86_64 

接下来删除无效的包:

 yum erase device-mapper-libs.i686 

现在执行更新/升级。 它的工作。