
执行curl命令的时候,报错如下信息:
curl: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory
报错信息:
在网上查找各种方案,主要有如下几种:
- 1.重新安装curl
- 2.更新libcrypto
所有方法试了,都没有解决。
最后通过如下方法解决:在curl命令中,建立目标软链接。
具体方案如下:
2 解决方案基本思路: 在开发机器中查找,里面libcrypto.so.1.0.0已经安装。根据报错,这应该是curl命令找不到libcrypto.so.1.0.0这个依赖 1.查看curl命令的相关依赖, 2.在机器上查找丢失的共享库 3.建立软连接2.1 使用ldd命令查看依赖
ldd命令是用来查看命令运行所需的共享库,常用来解决命令因缺少某个库文件而不能运行的一些问题。
# 查看命令的绝对路径 which curl # ~/anaconda3/bin/curl
找到相应的依赖:
ldd ~/anaconda3/bin/curl linux-vdso.so.1 => (0x00007fff666dd000) libcurl.so.4 => /home/work/anaconda3/bin/../lib/libcurl.so.4 (0x00007fd47e181000) librt.so.1 => /lib64/librt.so.1 (0x00007fd47dde2000) libz.so.1 => /home/work/anaconda3/bin/../lib/libz.so.1 (0x00007fd47dbcb000) libc.so.6 => /lib64/libc.so.6 (0x00007fd47d80a000) libssh2.so.1 => /home/work/anaconda3/bin/../lib/./libssh2.so.1 (0x00007fd47d5db000) libssl.so.1.1 => /home/work/anaconda3/bin/../lib/./libssl.so.1.1 (0x00007fd47e0da000) libcrypto.so.1.1 => /home/work/anaconda3/bin/../lib/./libcrypto.so.1.1 (0x00007fd47d32d000) libgssapi_krb5.so.2 => /home/work/anaconda3/bin/../lib/./libgssapi_krb5.so.2 (0x00007fd47e08a000) libkrb5.so.3 => /home/work/anaconda3/bin/../lib/./libkrb5.so.3 (0x00007fd47d251000) libk5crypto.so.3 => /home/work/anaconda3/bin/../lib/./libk5crypto.so.3 (0x00007fd47e06b000) libcom_err.so.3 => /home/work/anaconda3/bin/../lib/./libcom_err.so.3 (0x00007fd47e064000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd47d035000) /lib64/ld-linux-x86-64.so.2 (0x00007fd47dfea000) # 此处看到该信息没有依赖 libcrypto.so.1.0.0 (0x00007fd47cbf5000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fd47c9f1000) libkrb5support.so.0 => /home/work/anaconda3/bin/../lib/././libkrb5support.so.0 (0x00007fd47e053000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fd47c7d7000)
然后建立依赖,建立软链接
2.2 在机器上查找丢失的共享库很多共享库其他软件在安装的时候可能会自动安装,所以直接查找其他软件安装的共享库并使用
# 查找丢失的共享库信息 find ~ -name libcrypto.so.1.0.0 # 返回结果如下: # /home/work/anaconda3/libcrypto.so.1.0.02.3 建立软连接
将找到的共享库建立软连接到软件安装的lib目录中:
# 查看软件安装路径 which curl # 返回结果如下,软件是使用anaconda安装的 # ~/anaconda3/bin/curl # 建立软连接 ln -s /home/work/anaconda3/libcrypto.so.1.0.0 ~/anaconda3/bin/../lib/libcrypto.so.1.0.0
注意:如上建立软链接的过程/home/work/anaconda3/libcrypto.so.1.0.0目录是通过find ~ -name libcrypto.so.1.0.0查找到的信息。
~/anaconda3/bin/../lib/目录其实就是curl目录下的bin目录。
查看建立软链接是否成功
ldd ~/anaconda3/bin/curl linux-vdso.so.1 => (0x00007fffa19e9000) libcurl.so.4 => /home/work/anaconda3/bin/../lib/libcurl.so.4 (0x00007fa7c5d37000) librt.so.1 => /lib64/librt.so.1 (0x00007fa7c5998000) libz.so.1 => /home/work/anaconda3/bin/../lib/libz.so.1 (0x00007fa7c5781000) libc.so.6 => /lib64/libc.so.6 (0x00007fa7c53c0000) libssh2.so.1 => /home/work/anaconda3/bin/../lib/./libssh2.so.1 (0x00007fa7c5191000) libssl.so.1.1 => /home/work/anaconda3/bin/../lib/./libssl.so.1.1 (0x00007fa7c5c90000) libcrypto.so.1.1 => /home/work/anaconda3/bin/../lib/./libcrypto.so.1.1 (0x00007fa7c4ee3000) libgssapi_krb5.so.2 => /home/work/anaconda3/bin/../lib/./libgssapi_krb5.so.2 (0x00007fa7c5c40000) libkrb5.so.3 => /home/work/anaconda3/bin/../lib/./libkrb5.so.3 (0x00007fa7c4e07000) libk5crypto.so.3 => /home/work/anaconda3/bin/../lib/./libk5crypto.so.3 (0x00007fa7c5c21000) libcom_err.so.3 => /home/work/anaconda3/bin/../lib/./libcom_err.so.3 (0x00007fa7c5c1a000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa7c4beb000) /lib64/ld-linux-x86-64.so.2 (0x00007fa7c5ba0000) # 查看已经建立成功 libcrypto.so.1.0.0 => /home/work/anaconda3/bin/../lib/././libcrypto.so.1.0.0 (0x00007fa7c47ab000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fa7c45a7000) libkrb5support.so.0 => /home/work/anaconda3/bin/../lib/././libkrb5support.so.0 (0x00007fa7c5c0a000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fa7c438d000)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)