rm: relocation error: /lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in

由于安装glibc-2.23.tar.gz 导致系统出错,命令不能用
恢复方法:
进入/usr/lib64目录,使用 ls -ltr 命令
ls -ltr
lrwxrwxrwx. 1 root root 21 12月 14 21:46 ld-linux-x86-64.so.2 -> /usr/lib64/ld-2.17.so
lrwxrwxrwx. 1 root root 23 12月 14 21:51 libc.so.6 -> /usr/lib64/libc-2.17.so
  你可以从这里看到所有的链接版本,务!必!让所有版本保持一致,因为上述两个错误造成的原因之一就是更改过程造成了版本的冲突。
  因为ln无法使用,这里可以使用sln命令,把所有该更改的版本改回来
  # sln /usr/lib64/libc-2.23.so /lib64/libc.so.6
  # sln /usr/lib64/ld-2.23.so /usr/lib64/ld-linux-x86-64.so.2

参考:

Linux(CentOS)GLIBC出错补救方式

字体:大 中 小 | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 软件开发 Linux 操作系统

出于各种原因,我玩坏了我的系统…主要出错原因是更改 /usr/lib64 下的 libc.so.6 等文件引起,具体错误及补救方式附上,希望可以帮到心里失火后来人:
  首先,
  不要随便重新启动!!!
  因为libc出错后很容易导致系统无法启动,关了机会很麻烦。其次也尽量不要关闭正在运行的控制台,因为很多东西还可以补救。
  错误严重的可能连基本命令都没法使用

ls

ls: relocation error: /lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time reference
  好一些的只有安装的程序无法使用

gcc

relocation error: /lib64/libm.so.6: symbol __get_cpu_features, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
  情况最好的是只错误的更改了libc.so.6的软链接,可以尝试
  # ldconfig (注意是 ‘l‘ 不是 ‘i‘ )
  主要功能:在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib.so),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。
  如果没有效果,可能是因为配置文件被移动或重命名,这时需要重新添加路径:
  # LD_PRELOAD="/lib64/libc-2.18.so" ln -s /lib64/libc-2.18.so /lib64/libc.so.6
  他的主要功能有两部分:临时规定libc路径,重新完成链接,如果需要使用其它操作(ls、mv)可以在使用前添加LD_PRELOAD路径,临时使用功能。
  如果上面两个办法都没有作用,很有可能出错的并不是一个文件或者链接。
  进入/lib64目录,使用 ls -ltr 命令

ls -ltr

-rwxr-xr-x. 1 root root 31461 12月 14 19:41 libutil-2.18.so
lrwxrwxrwx. 1 root root 12 12月 14 19:41 libutil.so -> libutil.so.1
-rw-r–r--. 1 root root 47416 12月 14 19:41 libutil.a
-rwxr-xr-x. 1 root root 824446 12月 14 19:41 ld-2.18.so
drwxr-xr-x. 2 root root 27 12月 14 19:41 audit
lrwxrwxrwx. 1 root root 12 12月 14 19:41 libm.so.6 -> libm-2.18.so
lrwxrwxrwx. 1 root root 13 12月 14 19:41 libdl.so.2 -> libdl-2.18.so
… …
… …
lrwxrwxrwx. 1 root root 14 12月 14 19:41 libanl.so.1 -> libanl-2.18.so
lrwxrwxrwx. 1 root root 15 12月 14 19:41 libutil.so.1 -> libutil-2.18.so
… …
… …
lrwxrwxrwx. 1 root root 21 12月 14 21:46 ld-linux-x86-64.so.2 -> /usr/lib64/ld-2.17.so
lrwxrwxrwx. 1 root root 23 12月 14 21:51 libc.so.6 -> /usr/lib64/libc-2.17.so
  你可以从这里看到所有的链接版本,务!必!让所有版本保持一致,因为上述两个错误造成的原因之一就是更改过程造成了版本的冲突。
  因为ln无法使用,这里可以使用sln命令,把所有该更改的版本改回来
  # sln /usr/lib64/libc-2.18.so /lib64/libc.so.6
  # sln /usr/lib64/ld-2.18.so /usr/lib64/ld-linux-x86-64.so.2
  一般到这里问题就不大了,如果仍然存在问题,推荐灵活使用历史命令
  # history |grep XXX
  这里|grep XXX 是按某个关键词进行过滤,可以按照历史进行回退
  希望每个人的努力,都不会被辜负。

你可能感兴趣的:(rm: relocation error: /lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in)