1.python3.8.5的make编译,依赖openssl1.0.2版本;
2.(centos6.3系统默认openssl的版本是1.0.0)用jumbo 看下是否有1.0.2版本的openssl,若有,可以用jumbo安装openssl1.0.2
3.jumbo安装完之后,需要配置些软连接;若不配置,重新make python3.8时,会默认找的是系统默认的openssl,报require openssl 1.0.2版本;进而找不到jumbo安装后的openssl新版本;
4.openssl软连接的设置:
备份旧的openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
配置使用新版本
ln -s /home/xxx/.jumbo/include/openssl /usr/include/openssl
ln -s /home/xxx/.jumbo/bin/openssl /usr/bin/openssl
ln -s /home/xxx/.jumbo/lib/libssl.so.1.0.0 /usr/local/lib64/libssl.so
更新动态链接库数据并重新加载
echo “/home/xxx/.jumbo/lib” >> /etc/ld.so.conf
ldconfig -v
配置环境变量:
export LDFLAGS=" -L/home/xxx/.jumbo/lib"
export CPPFLAGS=" -I/home/xxx/.jumbo/include"
export PKG_CONFIG_PATH="/home/xxx/.jumbo/lib/pkgconfig"
5.重新编译python3.8.5
./configure --enable-shared --with-openssl=/home/xxx/.jumbo
执行make install的时候报:
WARNING: The script easy_install-3.8 is installed in '/usr/local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
解决方案:cp /home/xxx/Python-3.8.5/libpython3.8.so.1.0 /usr/lib64/
6.当某用户执行的python3.8.5压缩包的安装时,尽管python3二进制安装到了系统路径下/usr/local/bin,但当该用户没有/目录的权限时,(比如只有/home/xxx下的读写权限),pip3 install xxx,会“Defaulting to user installation because normal site-packages is not writeable”,在用户某目录下创建个site-packages路径,进行安装包管理。