0

我有一个最近升级到 5.6 的 64 位 CentOS 5.5 机器。在升级过程中,我删除了不必要的 32 位软件包(i*86 架构软件包),因为它们对 64 位机器并不真正有效。同样,我删除了一些仅开发机器需要的其他包。

删除的一些 32 位软件包包括:

glib2      glibc    libgcc     libstdc++

删除的一些 64 位软件包包括:

boost-devel       cpp                gcc               gcc-c++
gdb               glibc-devel        glibc-headers     libstdc++-devel

以下是一些保留的软件包:

# rpm -qa | grep libc
libcap-1.10-26
glibc-common-2.5-58.el5_6.4
glibc-2.5-58.el5_6.4

但是,现在我在重新启动时收到以下错误:

/sbin/mingetty: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

这个日志对每个终端重复了很多次,然后 INIT 暂停 5 分钟,因为它重生的速度太快了。

结果,我无法登录控制台,但仍然可以通过 SSH 连接到盒子。

我已经验证 libc.so.6 存在:

# ls -lrt /lib64/libc[\.-]*
-rwxr-xr-x 1 root root 1716720 Jun 27  2011 /lib64/libc-2.5.so
lrwxrwxrwx 1 root root      11 Sep 20 19:16 /lib64/libc.so.6 -> libc-2.5.so

那个mingetty指向它:

ldd /sbin/mingetty 
    linux-vdso.so.1 =>  (0x00007fffb7ffc000)
    libc.so.6 => /lib64/libc.so.6 (0x00002adf73cb2000)
    /lib64/ld-linux-x86-64.so.2 (0x00002adf73a94000)

如果我使用这些相同的软件包集执行 CentOS 5.6 的全新安装,一切正常,所以我怀疑问题是由于其中一些软件包的删除脚本造成的。

有谁知道可能会发生什么?

4

1 回答 1

1

原来 selinux 在 yum 更新期间被启用,因为它的一些软件包已安装。结果,它弄乱了一些链接。解决方案是在 yum 更新后立即禁用 selinux。

于 2013-10-01T13:22:51.793 回答