Linux(CentOS)GLIBC出错补救方式

发表于:2017-12-15 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Rew小小厨    来源:简书

  出于各种原因,我玩坏了我的系统.........主要出错原因是更改 /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 是按某个关键词进行过滤,可以按照历史进行回退
  希望每个人的努力,都不会被辜负。

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号