原因: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
升级步骤如下:
- 去官网下载最新版本,或wget下载也行 http://www.openssl.org
- wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
- 解压并进入解压目录后执行:
-
./config --prefix=/usr/local/openssl shared zlib
-
make depend
-
make && make install
-
- 备份
- mv /usr/bin/openssl /usr/bin/openssl.old
- mv /usr/include/openssl /usr/include/openssl.old
- 配置使用新版本:
-
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
-
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
-
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/
-
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/
-
ln -s /usr/lib64/libssl.so.1.1 /usr/lib64/libssl.so
-
- 重新加载动态链接库
-
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf 或者直接编辑文件/etc/ld.so.conf
-
ldconfig -v
-
- 验证是否升级成功
- 命令行输入openssl version
升级成功后重新安装zeroc-ice
- 安装依赖
- centos
- yum install openssl-devel
- yum install bzip2-devel.x86_64
- ubuntu
- apt install libbz2-dev
- apt install libssl-dev
- centos
- 开始安装
- conda activate base
-
pip install zeroc-ice==3.7.3
注:
- zeroc-ice==3.7.3 依赖的gcc为10,如果系统安装的gcc为11,需要降版本
- gcc降版本操作:
- apt install gcc-10
- cd /usr/bin
- rm -f gcc
- ln -s gcc-10 gcc
- g++版本降级与gcc相同