1. 引出问题
1.1 问题背景
笔者遇到该问题的背景为在Ubuntu22.04服务器下安装深度学习框架PaddleDetection后无法使用。
Python报错为:
1 | ImportError: libssl.so.1.1: cannot open shared object file: No such file or directory |
经查询是缺少openssl-1.1.1o
。
1.2 难点:无sudo
本问题最直观的解法是安装指定的openssl版本,但通常在linux服务器应用过程中会缺少sudo权限,并且全局安装openssl势必会影响其他用户的使用,因此需要借助别的方法去解决本问题。
2. 解决方法
解决方法的思路其实也很简单,即cd
到用户目录下欲存放openssl的目录,下载openssl-1.1.1o后编译出libssl.so.1.1
,并且在用户目录下的环境变量记录路径即可。
下载并解压openssl-1.1.1o.tar.gz:
1
2
3
4
5mkdir $HOME/opt
cd $HOME/opt
wget https://www.openssl.org/source/openssl-1.1.1o.tar.gz
tar -zxvf openssl-1.1.1o.tar.gz
rm openssl-1.1.1o.tar.gz编译libssl.so.1.1
1
2
3cd openssl-1.1.1o
./config
make(可选)移动libssl.so.1.1到指定位置
1
2
3mkdir $HOME/opt/lib
mv libssl.so.1.1 $HOME/opt/lib
mv libcrypto.so.1.1 $HOME/opt/lib配置环境变量
1
2cd $HOME
vim .bashrc添加如下环境变量:
1
export LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH
测试
在自己的环境进行测试是否报错
额外问题:笔者安装好后继续报错
1 | ImportError: /home/****/envs/pp/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/***/envs/pp/lib/python3.8/site-packages/paddle/fluid/libpaddle.so) |
解决办法很简单:
1 | conda install -c conda-forge gcc=12.1.0 |