发新话题
打印

解决:cp: error while loading shared libraries: libc.so.6: cannot open

解决:cp: error while loading shared libraries: libc.so.6: cannot open

先说一下为什么会发生这个错误,我看这篇博客:分享Centos6.5升级glibc过程 ,里面提到了如下命令:

$ rm -rf /lib64/libc.so.6                         // 先删除先前的libc.so.6软链
$ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

等我删完/lib64/libc.so.6 ,发现ln不能用了!!!

root@:~/clickhouse/glibc-build# ln   
ln: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

那篇博客真坑。
不仅仅是ln,很多Linux命令多不能用了:

root@:~/clickhouse/glibc-build# mv
mv: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
root@:~/clickhouse/glibc-build# cp
cp: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

解决方法是使用环境变量:

export LD_PRELOAD="/lib/x86_64-linux-gnu/libc-2.19.so"

然后再把库给链接回来:

rm /lib/x86_64-linux-gnu/libc.so.6
ln -s /lib/x86_64-linux-gnu/libc-2.19.so /lib/x86_64-linux-gnu/libc.so.6

把其它 /lib/x86_64-linux-gnu/libc-2.28.so等文件删除,防止ldconfig后,又自动链接为高版本的库,导致 Segmentation fault (core dumped)

如果设置错误的库文件,会提示:
ERROR: ld.so: object '/lib/x86_64-linux-gnu/libc-2.18.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
此时,不能reboot,否则进不了系统,只能逐个查找正确的数字,直到找到为止

————————————————
版权声明:本文为CSDN博主「淡竹云开」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangpeterx/article/details/96149932

[ 本帖最后由 linda 于 2022-7-22 12:35 编辑 ]

TOP

发新话题