CentOS系统下如何离线安装Python3.9

1.首先在一台可联网的外部CentOS7机器A上下载相关依赖包

##安装yum工具
[root@bigdata01 luocb]# yum -y install yum-utils
[root@bigdata01 luocb]#  mkdir python3.9_rpm
##只下载相关依赖,不进行安装;指定保存目录为 ./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

通过上面的操作,会得到离线安装python3.9所需的3个压缩包:


离线安装包

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配置项,不修改这里的话容易出现编译安装后python依赖的openssl与系统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行原本是带注释#号的,这里需要去掉,得到上面的内容,保存退出)

##编译安装
[root@master Python3.9.5]#  ./configure --prefix=/usr/local/python3 --with-openssl=/usr/bin/openssl 
[root@master Python3.9.5]#  make && make install
##创建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
##测试安装结果
[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)"


第一个Python程序
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容