# Python 3.10 安装
# 1. 更新openssl
# 1.检查 openssl 版本
[root@mmrpatroni2 ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
# 2. 安装下载新版本
# 下载 openssl
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz --no-check-certificate
# 解压
tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g/
# 编译安装
./config --prefix=/usr/local/openssl
make
make install
# 3. 备份和替换
# 备份当前机器的版本
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
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig
# 4. 查看是否更新成功
[root@mmrpatroni1 ~]# openssl version
OpenSSL 1.1.1g 21 Apr 2020
# 2. 安装 python 3.10
# 1. 下载python
wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz --no-check-certificate
# 2. 安装
- 解压
# 解压
tar -zxvf Python-3.10.11.tgz
有两种方式来指定 openssl 的安装路径:
注意:使用
--enable-optimizations
参数可能会出现各种问题,不建议使用这个参数。修改 python 3.10路径下的Module/Setup 文件:
编辑 python 3.10解压路径下的 Module/Setup 文件:
修改如下行的内容(取消注释掉这五行):
cd /opt/soft/python-3.10/ vi Module/Setup # Socket module helper for socket(2) _socket socketmodule.c # 大约在206行, # Socket module helper for SSL support; you must comment out the other # socket line above, and edit the OPENSSL variable: OPENSSL=/usr/local/openssl # 修改升级后的位置 _ssl _ssl.c \ # 取消注释 -I$(OPENSSL)/include -L$(OPENSSL)/lib \ # 查看openssl安装路径下lib,如果为lib64则修改为lib64 -lssl -lcrypto # 取消注释 #_hashlib _hashopenssl.c \ # -I$(OPENSSL)/include -L$(OPENSSL)/lib \ # -lcrypto
正常编译安装:
./configure --prefix=/usr/local/python/3.10/ --enable-shared
使用
--with-openssl
和--with-openssl-rpath=auto
来指定 openssl 的路径,方法如下:./configure --prefix=/usr/local/python/3.10/ --with-openssl=/usr/local/openssl/ --with-openssl-rpath=auto --enable-shared
编译安装:
make -j4 && make install -j4
添加软连接:
ln -s /usr/local/python/3.10/bin/python3. /usr/bin/python3 ln -s /usr/local/python3/3.10/bin/pip3 /usr/bin/pip3 echo "/usr/local/python3/3.10/lib" >/etc/ld.so.conf.d/python3.conf ldconfig
测试
[root@mmrpatroni2 python-3.10]# python3 -V Python 3.10.11 # 测试 openssl [root@mmrpatroni2 python-3.10]# python3 Python 3.10.11 (main, Apr 18 2023, 09:44:09) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ssl >>> import _ssl >>>