当Linux安装Boost库后,使用ldconfig刷新库连接时,所有基础命令无法使用
如果遇到这种问题,千万不要关闭ssh连接,如果关闭则无法再连接上。
报错如下:
[root@localhost /]# ls -l
ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
[root@localhost /]# find
find: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
[root@localhost /]# ls -a
ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
上述问题仅给出几个命令使用出错的信息,会出错的所有基本命令如下:
查找基础命令的命令为 :which ls
[root@localhost bin]# which ls
alias ls=‘ls --color=tty’
/bin/ls
上述/bin/ls 中bin为所在目录,也就是cd /bin
刚开始我的思路是既然丢失了连接,那么我们重新 ln -s即可,但很遗憾 ln 命令也同样丢失了连接,此时尝试使用 sln命令发现此命令还可以使用。
同时通过百度发现这篇文章:Linux之libc.so.6软链接错误导致ls等基础命令无法使用,通过这篇文章我发现 pwd,cd命令可以使用,这篇文章讲解了ls的恢复过程,参考此篇文章恢复方法,也是我们将要使用的恢复方式,但重点在于怎么找到你需要重新建立连接的过程。
命令如下:
sln /lib64/libc-2.5.so /lib64/libc.so.6
sln /lib64/ld-2.5.so /lib64/ld-linux-x86-64.so.2
sln /lib64/libm-2.5.so /lib64/libm.so.6
首先lib-2.5.so是具体的库,后边的libc.so.6是连接,需要找到libc-2.5.so、ld-2.5.so、libm-2.5.so所在文件夹,有些人是在 /usr/local/lib64目录中,有些在/usr/lib64目录下,ls命令无法用怎么办?
使用cd命令,cd /usr/lib64 不回车,按tab键会补全此目录下所有文件显示。
xshell可以CTRL + F可以查询屏幕信息,没用xshell可以补全后复制到本地编辑器查找这些需要的动态库,首先版本可能不同,所以查找时只能找 libc、ld、libm这几个前缀名称,确定好版本后,使用命令:
sln /lib64/libc-"你的版本号".so /lib64/libc.so.6
sln /lib64/ld-"你的版本号".so /lib64/ld-linux-x86-64.so.2
sln /lib64/libm-"你的版本号".so /lib64/libm.so.6
/lib64/libc.so.6这个也按照上述查找方式查找到具体位置,然后将命令更换成你的具体路径即可。