Liunx GLIBC版本修改时libc.so.6 被误删修复

Liunx应用编译,需要降低GLIBC版本编译运行,但libc.so.6出现异常,shell 命令均不支持;

  /bin/ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

但这时shell未断开连接仍可进入,只是命令不支持;幸好之前修改时,有备份 libc.so.6.bak;

 

方法1:(推荐)

调用命令:

# LD_PRELOAD=/lib/libc.so.6.bak rm libc.so.6 

# LD_PRELOAD=/lib/libc.so.6.bak cp  libc.so.6.bak libc.so.6, 成功修复;

 

当然,如果libc.so.6是软连接,则命令修改为 ln -s,如 

# LD_PRELOAD=/lib/libc-2.31.so.bak ln -s /lib/libc-2.31.so.bak libc.so.6

Linux调用so的库文件时,搜素路径为:当前路径 -》系统lib目录。
但设置LD_PRELOAD后,搜素路径为: LD_PRELOAD -》当前路径,-》系统lib目录

方法2:

# ldconfig -l -v /lib/libc-2.31.so.bak

libc.so.6 -> libc-2.31.so.bak (changed)
 

如果已断开了shell连接 或者是libc.so彻底被删除了,会比较麻烦,自行搜索!

 

posted @ 2024-03-02 14:28  我自逍遥笑  阅读(298)  评论(0编辑  收藏  举报