我有一个64位的CentOS 5.5盒子,我最近升级到了5.6。 在升级过程中,我删除了不必要的 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
而那个明格特指向它:
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 的全新安装,一切正常,所以我怀疑问题是由于其中一些软件包的删除脚本造成的。
有谁知道可能会发生什么?
事实证明,selinux 在 yum 更新期间被启用,因为它的某些软件包已安装。 结果,它搞砸了一些链接。 解决方案是在 yum 更新后立即禁用 selinux。