我有一个64位服务器(版本6.3),它不想为了32位兼容性而安装glibc.i686模块。当我尝试yum install glibc.i686作为根时,它会给我一个长串的错误,如下所示:
Transaction Check Error:
file /lib/libc.so.6 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64
file /lib/libm.so.6 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64
file /lib/libpthread.so.0 from install of glibc-2.12-1.80.el6_3.6.i686 conflicts with file from package libc6-6:2.15-1.x86_64以下是rpm -qa为glibc和libc6提供的输出:
# rpm -qa | grep glibc
glibc-common-2.12-1.80.el6_3.6.x86_64
glibc-2.12-1.80.el6_3.6.x86_64
# rpm -qa | grep libc6
libc6-2.15-1.x86_64尽管我尽了最大的努力,谷歌并没有提供任何非常有帮助的东西。
为什么这两个包会发生冲突,我如何让它们很好地一起玩呢?
编辑:
下面是yum repolist的输出:
# yum repolist
Loaded plugins: product-id, rhnplugin, subscription-manager
Updating certificate-based repositories.
Unable to read consumer identity
repo id repo name status
rhel-x86_64-server-6 Red Hat Enterprise Linux Server (v. 6 for 64-bit x86_64) 8,824
repolist: 8,824发布于 2013-01-24 22:25:39
中没有libc6包。相同文件的包名是glibc。似乎有人从不同的Linux发行版在您的服务器上安装了一个包,并覆盖了在尝试这样做时会收到的错误(这些错误与您在这里看到的几乎相同)。
当然,这会使您的RPM数据库相对于实际安装的软件处于不一致的状态,并且可能会导致兼容性和依赖性问题,比如您今天遇到的问题。例如,不再可能从支持的存储库更新包,并且很难确切确定系统上运行的代码是什么。
我的最佳猜测是,有人(实际上不知道正确的方法)试图升级glibc,而不是Red提供的版本,最有可能的是利用EL6附带的glibc版本中没有出现的一个新特性。
正确的方法,如果您真的需要这个晚版本的glibc,是采取right的源代码RPM,调整规范文件和任何补丁来构建新版本的glibc,并使用新版本的新二进制RPM。然后,您将负责自己维护它,可能会失去供应商的支持等等,所以只有在业务需求绝对需要的情况下,您才应该考虑这一点。(既然你失去了你的支持,你最好换到CentOS.)
https://serverfault.com/questions/472196
复制相似问题