Linux · 9月 4, 2021 2

找不到libssl.so.10的终极解决方案 – Ubuntu 18

背景

咱在某Ubuntu18系统的VPS上运行在CentOS7里编译的二进制文件,弹出提示:

error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory

有库没装呗。上网查了一大圈,答案比较统一。但这些统一的答案并没有解决问题。

大部分人告诉你的

无非就是从APT把库装上:

sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-dev

# 创建软链接
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

然后好了吗?并没有。事实上这么整完在/lib/x86_64-linux-gnu里根本没有上面写的那俩文件。(难道就我这样?)

我告诉你的

其实参考了这篇文章。简单来说就是编译OpenSSL,然后复制粘贴编译生成的文件libssl.so.1.0.0和libcrypto.so.1.0.0到/lib/x86_64-linux-gnu,再创建软链接。

  1. 下载编译老版本OpenSSL
wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz
tar -zxvf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config shared zlib-dynamic
make
# 👆这一步会出现找不到zlib.h的幺蛾子。如果出现类似错误,请先sudo apt-get install libz-dev
# 不出意外的话这时候目录里应该出现libssl.so.1.0.0和libcrypto.so.1.0.0
  1. 复制到系统库目录并创建软链接
cp libssl.so.1.0.0 libcrypto.so.1.0.0 /lib/x86_64-linux-gnu
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10