先说一下为什么会发生这个错误,我看这篇博客:分享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 编辑 ]