CentOS系統(tǒng)下如何離線安裝Python3.9

1.首先在一臺(tái)可聯(lián)網(wǎng)的外部CentOS7機(jī)器A上下載相關(guān)依賴包

##安裝yum工具
[root@bigdata01 luocb]# yum -y install yum-utils
[root@bigdata01 luocb]#  mkdir python3.9_rpm
##只下載相關(guān)依賴,不進(jìn)行安裝;指定保存目錄為 ./python3.9_rpm
[root@bigdata01 luocb]#  yumdownloader --resolve --destdir  ./python3.9_rpm zlib-devel bzip2-devel openssl openssl-devel ncurses-devel  epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel
##把下載完的依賴包壓縮好
[root@bigdata01 luocb]#  tar -zcvf python3.9_rpm.tar.gz ./python3.9_rpm
##下載python3.9.5的源碼包
[root@bigdata01 luocb]#  wget --no-check-certificate  https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
[root@bigdata01 luocb]#  wget --no-check-certificate  https://www.openssl.org/source/openssl-1.1.1g.tar.gz

通過上面的操作,會(huì)得到離線安裝python3.9所需的3個(gè)壓縮包:


離線安裝包

2.開始離線安裝Python3.9

離線安裝依賴包

[root@master luocb]#  mkdir /home/python3
[root@master luocb]#  cd /home/python3
[root@master python3]#  tar -zxvf python3.9_rpm.tar.gz
[root@master python3]#  cd python3.9_rpm
[root@master python3.9_rpm]#  rpm -Uvh ./*.rpm --nodeps --force

編譯安裝python3.9源碼包

##編譯openssl
[root@master luocb]#  tar -zxvf openssl-1.1.1g.tar.gz
[root@master luocb]#  cd openssl-1.1.1g
[root@master openssl-1.1.1g]#  ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic
[root@master openssl-1.1.1g]#  make && make install 
[root@master openssl-1.1.1g]# openssl version 
OpenSSL 1.1.1g  21 Apr 2020

[root@master openssl-1.1.1g]# rm /usr/lib64/libssl.so
[root@master openssl-1.1.1g]# rm -rf /usr/lib64/libcrypto.so
[root@master openssl-1.1.1g]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so
[root@master openssl-1.1.1g]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
[root@master openssl-1.1.1g]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@master openssl-1.1.1g]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
[root@master openssl-1.1.1g]# rm /lib/libssl.so
[root@master openssl-1.1.1g]# rm  /lib/libcrypto.so 
[root@master openssl-1.1.1g]# ln -s /usr/local/lib64/libssl.so.1.1  /lib/libssl.so
[root@master openssl-1.1.1g]#  ln -s /usr/local/lib64/libcrypto.so.1.1 /lib/libcrypto.so

##編譯python
[root@master luocb]#  cd /home/python3
[root@master python3]#  tar -zxvf Python3.9.5.tar.gz
[root@master python3]#  cd Python3.9.5
##修改openssl配置項(xiàng),不修改這里的話容易出現(xiàn)編譯安裝后python依賴的openssl與系統(tǒng)openssl的版本不一致
[root@master python3]#  vi Modules/Setup
    214 #SSL=/usr/local/ssl
    215 _ssl _ssl.c \
    216         -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    217         -L$(SSL)/lib -lssl -lcrypto
(215-217行原本是帶注釋#號(hào)的,這里需要去掉,得到上面的內(nèi)容,保存退出)

##編譯安裝
[root@master Python3.9.5]#  ./configure --prefix=/usr/local/python3 --with-openssl=/usr/bin/openssl 
[root@master Python3.9.5]#  make && make install
##創(chuàng)建link
[root@master Python3.9.5]#  ln -s /usr/local/python3/bin/python3 /usr/bin/python
[root@master Python3.9.5]#  ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
##測(cè)試安裝結(jié)果
[root@master Python3.9.5]# python -V
Python 3.9.5
[root@master Python3.9.5]# pip -V
pip 21.1.1 from /usr/local/python3/lib/python3.9/site-packages/pip (python 3.9)

##檢查python依賴的openssl版本
[root@bigdata02 Python-3.9.5]# python -c "import ssl; print(ssl.OPENSSL_VERSION)"


第一個(gè)Python程序
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容