环境准备
安装依赖项
sudo yum update -y
sudo yum groupinstall -y "Development Tools"
sudo yum install -y \
gcc \
openssl-devel \
bzip2-devel \
libffi-devel \
zlib-devel \
wget
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-10
scl enable devtoolset-10 bash
echo "source /opt/rh/devtoolset-10/enable" >> ~/.bashrc
source ~/.bashrc
sudo yum install -y wget gcc gcc-c++ kernel-devel make
cd /usr/local/src
sudo wget http://ftp.gnu.org/gnu/gcc/gcc-10.2.1/gcc-10.2.1.tar.gz
sudo tar -xzf gcc-10.2.1.tar.gz
cd gcc-10.2.1
sudo ./contrib/download_prerequisites
sudo mkdir build
cd build
sudo .. /configure --prefix = /usr/local/gcc-10.2.1 --enable-languages= c,c++ --disable-multilib
sudo make -j$( nproc)
sudo make install
sudo ln -s /usr/local/gcc-10.2.1/bin/gcc /usr/bin/gcc-10.2.1
sudo ln -s /usr/local/gcc-10.2.1/bin/g++ /usr/bin/g++-10.2.1
sudo ln -s /usr/local/gcc-10.2.1/bin/cpp /usr/bin/cpp-10.2.1
echo 'export PATH=/usr/local/gcc-10.2.1/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
gcc --version
sudo yum remove openssl
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar -zxf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
./config --prefix = /usr/local/openssl --openssldir = /usr/local/openssl shared zlib
make
sudo make install
sudo ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
sudo ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
sudo ldconfig
echo "source /opt/rh/devtoolset-10/enable" >> ~/.bashrc
source ~/.bashrc
openssl version
python源码准备
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz
sudo tar xzf Python-3.12.3.tgz
cd Python-3.12.3
编译
sudo mkdir -p /data/opt/python/python3
sudo ./configure --prefix = /data/opt/python/python3 --enable-shared --enable-optimizations --with-openssl= /usr/local/openssl
sudo make altinstall
wget https://bootstrap.pypa.io/get-pip.py
sudo /data/opt/python/python3/bin/python3.12 get-pip.py
验证
/data/opt/python/python3/bin/python3.12 --version
/data/opt/python/python3/bin/pip3.12 --version
配置环境变量(可选)
sudo vim /etc/profile
export LD_LIBRARY_PATH = /data/opt/python/python3/lib:$LD_LIBRARY_PATH
export PATH = "/usr/local/bin/python3.12:$PATH "
export PYTHONUSERBASE = /data/opt/python/python3
source /etc/profile
ln -s xxx xxx