说明
centos7 自带的 python3 版本只到 3.6,而且官方也不打算没升级的样子.
但是一些项目需要升级高版本的 python3,所以决定通过编译方式安装一个高版本 python3.
实施
安装依赖依赖
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gdbm-devel db4-devel libpcap-devel xz-devel make gcc gcc-c++ python-devel libffi
yum install zlib* -y
下载 openssl 源码包
openssl 官方最新到 3.0 了,考虑稳定性使用 openssl-1.1.1s
wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz
tar -zxf openssl-1.1.1s.tar.gz
pushd openssl-1.1.1s > /dev/null
编译 openssl 安装
./config --prefix=/usr/local/openssl shared zlib
make && make install
备份老 openssl
mv /usr/bin/openssl /usr/bin/openssl.oldbak
mv /usr/include/openssl /usr/include/openssl.oldbak
创建 openssl 软链接
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/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
更新加载动态连接库数据
echo /usr/local/openssl/lib >> /etc/ld.so.conf
ldconfig -v
检查 openssl 版本
openssl version
popd > /dev/null
rm -rf openssl-1.1.1s*
下载 Python3 源码包
python 官方最新到 3.11 了,考虑稳定性使用 python3.9.15
wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz
tar -zxf Python-3.9.15.tgz
pushd Python-3.9.15 > /dev/null
编译安装
编译完成指定安装到/usr/local/python3
./configure --enable-optimizations --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make && make install
添加环境变量
echo "export PATH=/usr/local/python3/bin:$PATH" >> /etc/profile
source /etc/profile
创建 python3 软链接
ln -sf /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -sf /usr/local/python3/bin/pip3.9 /usr/bin/pip3
检查 Python 版本
python3 --version
pip3 --version
popd > /dev/null
rm -rf Python-3.9.15*