![centos:不同架构的软件包弄乱了?](https://linux22.com/image/609588/centos%EF%BC%9A%E4%B8%8D%E5%90%8C%E6%9E%B6%E6%9E%84%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%BC%84%E4%B9%B1%E4%BA%86%EF%BC%9F.png)
我正在尝试在以下机器上安装 gdal-devel:
# cat /etc/redhat-release
CentOS release 6.3 (Final)
# uname -a
Linux local 2.6.32-279.1.1.el6.x86_64 #1 SMP Tue Jul 10 13:47:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
并获取依赖于 gdal 开发的软件包列表:
# yum install gdal-devel
Loaded plugins: fastestmirror, presto, priorities
Loading mirror speeds from cached hostfile
* Webmin: download.webmin.com
* base: centos.bio.lmu.de
* epel: be.mirror.eurid.eu
* extras: artfiles.org
* rpmforge: apt.sw.be
* updates: artfiles.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gdal-devel.x86_64 0:1.7.3-15.el6 will be installed
--> Processing Dependency: libgeotiff-devel for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libosrjni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libogrjni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libgdaljni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libgdalconstjni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Running transaction check
---> Package gdal-java.x86_64 0:1.7.3-15.el6 will be installed
---> Package libgeotiff-devel.x86_64 0:1.2.5-5.el6 will be installed
--> Processing Dependency: libtiff-devel for package: libgeotiff-devel-1.2.5-5.el6.x86_64
--> Running transaction check
---> Package libtiff-devel.x86_64 0:3.9.4-5.el6_2 will be installed
--> Processing Dependency: libtiff = 3.9.4-5.el6_2 for package: libtiff-devel-3.9.4-5.el6_2.x86_64
--> Running transaction check
---> Package libtiff.i686 0:3.9.4-5.el6_2 will be installed
--> Processing Dependency: libz.so.1 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.9) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6(CXXABI_1.3) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libm.so.6(GLIBC_2.0) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libm.so.6 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libjpeg.so.62 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libgcc_s.so.1 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.7) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.4) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.3.4) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.3) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.2) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.11) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.1.3) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.1) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.0) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6 for package: libtiff-3.9.4-5.el6_2.i686
--> Running transaction check
---> Package glibc.i686 0:2.12-1.80.el6 will be installed
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.80.el6.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.80.el6.i686
---> Package libgcc.i686 0:4.4.6-4.el6 will be installed
---> Package libjpeg.i686 0:6b-46.el6 will be installed
---> Package libstdc++.i686 0:4.4.6-4.el6 will be installed
---> Package zlib.i686 0:1.2.3-27.el6 will be installed
--> Running transaction check
---> Package nss-softokn-freebl.i686 0:3.12.9-11.el6 will be installed
--> Finished Dependency Resolution
Error: Protected multilib versions: libtiff-3.9.4-5.el6_2.i686 != libtiff-3.9.4-6.el6_3.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
# yum install gdal-devel
Loaded plugins: fastestmirror, presto, priorities
Loading mirror speeds from cached hostfile
* Webmin: download.webmin.com
* base: centos.bio.lmu.de
* epel: be.mirror.eurid.eu
* extras: artfiles.org
* rpmforge: apt.sw.be
* updates: artfiles.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gdal-devel.x86_64 0:1.7.3-15.el6 will be installed
--> Processing Dependency: libgeotiff-devel for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libosrjni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libogrjni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libgdaljni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Processing Dependency: libgdalconstjni.so.1()(64bit) for package: gdal-devel-1.7.3-15.el6.x86_64
--> Running transaction check
---> Package gdal-java.x86_64 0:1.7.3-15.el6 will be installed
---> Package libgeotiff-devel.x86_64 0:1.2.5-5.el6 will be installed
--> Processing Dependency: libtiff-devel for package: libgeotiff-devel-1.2.5-5.el6.x86_64
--> Running transaction check
---> Package libtiff-devel.x86_64 0:3.9.4-5.el6_2 will be installed
--> Processing Dependency: libtiff = 3.9.4-5.el6_2 for package: libtiff-devel-3.9.4-5.el6_2.x86_64
--> Running transaction check
---> Package libtiff.i686 0:3.9.4-5.el6_2 will be installed
--> Processing Dependency: libz.so.1 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4.9) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6(CXXABI_1.3) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libstdc++.so.6 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libm.so.6(GLIBC_2.0) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libm.so.6 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libjpeg.so.62 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libgcc_s.so.1 for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.7) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.4) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.3.4) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.3) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.2) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.11) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.1.3) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.1) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6(GLIBC_2.0) for package: libtiff-3.9.4-5.el6_2.i686
--> Processing Dependency: libc.so.6 for package: libtiff-3.9.4-5.el6_2.i686
--> Running transaction check
---> Package glibc.i686 0:2.12-1.80.el6 will be installed
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.80.el6.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.80.el6.i686
---> Package libgcc.i686 0:4.4.6-4.el6 will be installed
---> Package libjpeg.i686 0:6b-46.el6 will be installed
---> Package libstdc++.i686 0:4.4.6-4.el6 will be installed
---> Package zlib.i686 0:1.2.3-27.el6 will be installed
--> Running transaction check
---> Package nss-softokn-freebl.i686 0:3.12.9-11.el6 will be installed
--> Finished Dependency Resolution
Error: Protected multilib versions: libtiff-3.9.4-5.el6_2.i686 != libtiff-3.9.4-6.el6_3.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
因此,看起来存储库的架构(686 与 x86_64)已经严重混乱。有什么想法可以解决这一混乱吗?
# yum repolist
Loaded plugins: fastestmirror, presto, priorities
Loading mirror speeds from cached hostfile
* Webmin: download.webmin.com
* base: centos.bio.lmu.de
* epel: be.mirror.eurid.eu
* extras: artfiles.org
* rpmforge: apt.sw.be
* updates: artfiles.org
repo id repo name status
Webmin Webmin Distribution Neutral 144
base CentOS-6 - Base 6,330+16
epel Extra Packages for Enterprise Linux 6 - x86_64 8,590
extras CentOS-6 - Extras 12
pgdg91 PostgreSQL 9.1 6 - x86_64 277
pgdg92 PostgreSQL 9.2 6 - x86_64 185
rpmforge RHEL 6 - RPMforge.net - dag 4,594
software.freivald.com Freivald RPMS for CentOS 1
software.freivald.com-qt Freivald RPMS for CentOS - Qt Development Software 16
updates CentOS-6 - Updates 459
答案1
到目前为止,唯一的解决方案是禁止存储库中的 i686 软件包。我通过在 .repo 文件中添加以下行来实现此目的:
exclude=*.i686
还有其他更好的想法吗?