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彻底被删除了,会比较麻烦,自行搜索!