背景:我在linux 服务器上使用curl 命令后报错了,看着这个错误是跟openssl 有关的,哎,只怪那些装机器的人太垃圾了,只能自己看看了

error while loading shared libraries: libcrypto.so.10: cannot open shared object file


原因是,/usr/lib64 下libssl.so.10缺失,或者链接版本不对。

缺失:

ll libssl.so*

-rwxr-xr-x 1 root root 520912 Jan  4 22:32 libssl.so.1.1

或者

版本不对:

ll libssl.so*

-rwxr-xr-x 1 root root 487784 Jan  5 14:00 libssl.so.1.0.1e

-rwxr-xr-x 1 root root 520912 Jan  4 22:32 libssl.so.1.1


解决方法:

方法1:openssl-1.0.1e 下载地址

​https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz ​

载完毕后解压,注意编译安装openssl需要c和prel环境。

   通过./config shared zlib-dynamic 来生成Makefile文件。然后make生成

libssl.so.1.0.0

libcrypto.so.1.0.0


方法2:找个正常的机器,同版本的机器来拷贝,我就是这么干的,找了6.5 的linux 机器来,也是这两个文件 libssl.so.1.0.0  、libcrypto.so.1.0.0,后面操作步骤都一样了


下面是具体的操作步骤:

将得到的两个文件拷贝到   /usr/lib64  

创建软链接(ln源就是上面查出的对应版本的库文件,这里注意了,ln -s 第一部分是实体文件,第二部分是虚拟的,我最开始就是搞错了,然后报错了):

cd /usr/lib64/

ln -s libssl.so.1.0.0          libssl.so.10

ln -s libcrypto.so.1.0.0    libcrypto.so.10

然后在/usr/lib64/ 下

ll libssl.so*

lrwxrwxrwx 1 root root     15 Jan  5 14:06 libssl.so.10 -> libssl.so.1.0.0

-rwxr-xr-x 1 root root 487784 Jan  5 14:00 libssl.so.1.0.0

-rwxr-xr-x 1 root root 520912 Jan  4 22:32 libssl.so.1.1