发布于 

Linux普通用户解决ImportError:libssl.so.1.1

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,并且在用户目录下的环境变量记录路径即可。

  1. 下载并解压openssl-1.1.1o.tar.gz:

    1
    2
    3
    4
    5
    mkdir $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
  2. 编译libssl.so.1.1

    1
    2
    3
    cd openssl-1.1.1o
    ./config
    make
  3. (可选)移动libssl.so.1.1到指定位置

    1
    2
    3
    mkdir $HOME/opt/lib 
    mv libssl.so.1.1 $HOME/opt/lib
    mv libcrypto.so.1.1 $HOME/opt/lib
  4. 配置环境变量

    1
    2
    cd $HOME
    vim .bashrc

    添加如下环境变量:

    1
    export LD_LIBRARY_PATH=$HOME/opt/lib:$LD_LIBRARY_PATH
  5. 测试
    在自己的环境进行测试是否报错


额外问题:笔者安装好后继续报错
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

本站由 @JasonYip 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。