说明
centos7 自带的 python3 版本只到 3.6,而且官方也不打算没升级的样子.
但是一些项目需要升级高版本的 python3,所以决定通过编译方式安装一个高版本 python3.
实施
安装依赖依赖
1 2 3
| 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
1 2 3
| 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 安装
1 2
| ./config --prefix=/usr/local/openssl shared zlib make && make install
|
备份老 openssl
1 2
| mv /usr/bin/openssl /usr/bin/openssl.oldbak mv /usr/include/openssl /usr/include/openssl.oldbak
|
创建 openssl 软链接
1 2 3 4
| 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
|
更新加载动态连接库数据
1 2
| echo /usr/local/openssl/lib >> /etc/ld.so.conf ldconfig -v
|
检查 openssl 版本
1 2 3
| openssl version popd > /dev/null rm -rf openssl-1.1.1s*
|
下载 Python3 源码包
python 官方最新到 3.11 了,考虑稳定性使用 python3.9.15
1 2 3
| 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
1 2
| ./configure --enable-optimizations --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl make && make install
|
添加环境变量
1 2
| echo "export PATH=/usr/local/python3/bin:$PATH" >> /etc/profile source /etc/profile
|
创建 python3 软链接
1 2
| ln -sf /usr/local/python3/bin/python3.9 /usr/bin/python3 ln -sf /usr/local/python3/bin/pip3.9 /usr/bin/pip3
|
检查 Python 版本
1 2 3 4
| python3 --version pip3 --version popd > /dev/null rm -rf Python-3.9.15*
|