Ubuntu 22.04 LTS 运行Curl 时出现报错
curl
curl: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
解决办法
- 如果能找到这个文件:
libcrypto.so.1.0.0
,则通过建立软链接的方式;如果不能,则尝试重新安装。
1.先找到curl所在的目录
which curl
输出得到:
/home/obs/anaconda3/bin/curl
确保,curl
是正常安装成功的,可以发现我的curl是安装在/home/obs/anaconda3/bin/
这个路径下
2、查找libcrypto.so.1.0.0 是否存在,存在的路径
find ~ -name libcrypto.so.1.0.0
输出得到:
/home/obs/anaconda3/pkgs/openssl-1.0.2p-h14c3975_0/lib/libcrypto.so.1.0.0
问题分析
能输出报错缺少的目标文件所在的路径信息,说明我的机器上已经安装了该文件,所以只是在curl运行时找到这个文件,所以发生上述报错
- 我们需要做的就是让curl找到这个文件,而curl对于上述缺失的信息一般存放在
~/anaconda3/lib
下,所以我们要在该lib
下建立一个上述缺失的文件,这可以通过软连接的方式实现
ln -sf /home/obs/anaconda3/pkgs/openssl-1.0.2p-h14c3975_0/lib/libcrypto.so.1.0.0 /home/obs/anaconda3/lib/libcrypto.so.1.0.0
如上所示,这部分命令包含两个路径,一个是已经找到的libcrypto.so.1.0.0
所在路径;第二个是想要将libcrypto.so.1.0.0
链接的目标路径,即anaconda3/lib/
下。
如此,可以发现curl能够正常运行了
总结
在Linux上运行一些指令时,经常会发生xxxxx: cannot open shared object file
的报错信息,如果下次在运行其他指令时也出现了类似的问题,可以尝试上述解决流程;也可以考虑重新安装相关软件。