我有一个最近升级到 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 的全新安装,一切正常,所以我怀疑问题是由于其中一些软件包的删除脚本造成的。
有谁知道可能会发生什么?