介绍
最近做一个底层编译的事情,发现需要glibc 2.15版本的依赖,编译完之后发现无效,因此需要在/lib和/lib64下对libc.so.6做一个软连接操作,操作了一半发现报错无法操作,因此记录下来帮助大家
# 移动基础库 ~~ 别轻易尝试
mv /lib64/libc.so.6 /lib64/libc.so.6.bak
当libc.so.6被移动后,软连接无法简历,ls和ll,make操作都没用,如下:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
make: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
处理方法
由于glibc是底层库,很多程序都有依赖,如果没有则会报此错误,解决办法是创建临时环境变量,然后快速回复libc.so.6的链接。
# 创建临时环境变量
export LD_PRELOAD="/usr/local/glibc-2.15/lib/libc-2.15.so"
# 建软连接
ln -s /usr/local/glibc-2.15/lib/libc-2.15.so /lib64/libc.so.6
测试解决效果
通过上面的方法,问题得到解决,可以正常使用ls,mv,cp,make等等命令
tips:若无/usr/local/glibc-2.15/这样的编译环境,直接将原文件复原即可,先设置临时环境变量,export LD_PRELOAD="/lib64/libc.so.6.bak
,然后复原库文件cp /lib64/libc.so.6.bak /lib64/libc.so.6