Centos7源码安装Python3

  1. 1. 说明
  2. 2. 实施
    1. 2.1. 安装依赖依赖
    2. 2.2. 下载 openssl 源码包
    3. 2.3. 编译 openssl 安装
    4. 2.4. 备份老 openssl
    5. 2.5. 创建 openssl 软链接
    6. 2.6. 更新加载动态连接库数据
    7. 2.7. 检查 openssl 版本
    8. 2.8. 下载 Python3 源码包
    9. 2.9. 编译安装
    10. 2.10. 添加环境变量
    11. 2.11. 创建 python3 软链接
    12. 2.12. 检查 Python 版本

说明

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*