Linux anaconda3 安装python版zeroc-ice 3.7.3报 undefined symbol: SSLeay

原因:linux通过 pip install zeroc-ice==3.7.3时会从源文件重新编译一个二进制版本,windows与macos不会重新编译。编译过程依赖openssl。但是centos7版本的默认openssl版本是1.0,anaconda3安装的openssl版本是1.1.1d。在1.0.x之前的版本中,文件为libeay32.dll和ssleay32.dll, 在1.1.x之后的版本中,名字是libssl.dll和libcrypto.dll。

解决办法:升级系统openssl

升级步骤如下:

  1. 去官网下载最新版本,或wget下载也行 http://www.openssl.org
    1. wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
  2. 解压并进入解压目录后执行:
    1. ./config --prefix=/usr/local/openssl shared zlib

    2. make depend

    3. make && make install

  3. 备份
    1. mv /usr/bin/openssl /usr/bin/openssl.old
    2. mv /usr/include/openssl /usr/include/openssl.old
  4. 配置使用新版本:
    1. ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

    2. ln -s /usr/local/openssl/include/openssl /usr/include/openssl

    3. ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/

    4. ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/

    5. ln -s /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so

  5. 重新加载动态链接库
    1. echo "/usr/local/openssl/lib" >> /etc/ld.so.conf 或者直接编辑文件/etc/ld.so.conf

    2. ldconfig -v

  6. 验证是否升级成功
    1. 命令行输入openssl version

升级成功后重新安装zeroc-ice

  1. 安装依赖
    1. centos
      1. yum install openssl-devel
      2. yum install  bzip2-devel.x86_64
    2. ubuntu
      1. apt install libbz2-dev
      2. apt install libssl-dev
  2. 开始安装
    1. conda activate base
    2. pip install zeroc-ice==3.7.3

注:

  1. zeroc-ice==3.7.3 依赖的gcc为10,如果系统安装的gcc为11,需要降版本
  2. gcc降版本操作: 
    1. apt install gcc-10
    2. cd /usr/bin
    3. rm -f gcc
    4. ln -s gcc-10 gcc
  3. g++版本降级与gcc相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值