linux - 加载共享库 libc.so.6 时出现 mingetty 错误

标签 linux centos yum libc

我有一个 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

那个 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 的全新安装,一切正常,所以我怀疑问题是由于其中一些软件包的删除脚本造成的。

有人知道会发生什么吗?

最佳答案

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

关于linux - 加载共享库 libc.so.6 时出现 mingetty 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19034143/

相关文章:

Linux 上的 C : Parse arguments from '<' and '|'

android - 在 Linux 上使用 javah

perl - “没有这样的文件或目录”,即使我拥有该文件并且它对每个人都有读取权限

python-3.x - python3.6安装uwsgi报错centos

git - 在主目录中安装 Git - CentOS 5 - 无根

Linux + 在数百台 Linux 机器上并行运行 yum update 的最佳方法是什么

C: 控件到达非 void 函数的末尾...即使它返回 int?

python - Dockerfile 构建镜像错误 : Distribution contains no modules or packages for namespace package

Magento 权限

centos - Ansible:如何使用 Ansible 更新系统 CentOS