centos 安装 python

升级openssl

# 1. 查看当前openssl的版本信息
openssl version #1.0.2 需要升级

# 2. 安装对应的依赖库
sudo yum -y groupinstall "Development tools"
sudo 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
sudo yum install zlib* -y
sudo yum install -y gcc gcc-c++ python-devel wget
sudo yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++
 
# 3. 下载openssl安装文件
mkdir /tmp/softwarebak
cd /tmp/softwarebak
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
 
# 4. 解压安装openssl,并进入openssl的目录
tar -zxvf openssl-1.1.1.k.tar.gz
cd openssl-1.1.1.k
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN.UTF-8

./config --prefix=/usr/local/openssl shared zlib 
sudo make && make install

# 5. 备份当前openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak 

# 6. 配置使用新版本
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

# 7. 更新动态链接库数据并重新加载
echo /usr/local/openssl/lib >> /etc/ld.so.conf
ldconfig -v

# 8. 查看是否升级成功
openssl version

# 9. 如果缺少libssl.s0.1.1
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

安装相应的编译工具

建议在root下操作,会方便很多,一定要安装,否则编译安装会报错。

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install -y libffi-devel
yum install yum-utils
yum-builddep python
sudo 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
sudo yum install zlib* -y
sudo yum install -y gcc gcc-c++ python-devel wget
sudo yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

下载安装包

wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz

解压

sudo tar -zxvf Python-3.10.4.tgz

创建编译安装目录

mkdir /usr/local/python3

安装

cd Python-3.10.4

# 进入源码目录
cd Python-3.10.4

#修改依赖的openssl
vim /tmp/softwarebak/Python-3.10.4/Modules/Setup
shift+g 跳转到末尾 然后在末尾粘贴如下内容,wq保存退出

_socket socketmodule.c
# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/openssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

#指定编译语言
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN.UTF-8
#指定安装目录
sudo ./configure --prefix=/usr/local/python3 --with-ssl=/usr/local/openssl 
或(主要看/usr/local/openssl是否存在)
#第一个指定安装的路径,不指定的话,安装过程中可能软件所需要的文件复制到其他不同目录,删除软件很不方便,复制软件也不方便.

#第二个是为了安装pip需要用到ssl,后面报错会有提到.
./configure --prefix=/usr/local/python3 --with-ssl # 上面同样的效果,推荐使用上面一行命名
#编译安装
sudo make && sudo make install && sudo make clean

在python3.8后,使用enable-optimizations 这个参数在服务器使用的是低版本的gcc时会报错,有三个处理方法:

可以先升级gcc
不加–enable-optimizations
使用以下依赖
yum install yum-utils
yum-builddep python

不过方法三好像是个概率事件,不一定会成功。

参考链接:https://stackoverflow.com/questions/41405728/what-does-enable-optimizations-do-while-compiling-python

创建软链接

相当于windows环境变量,如下写不会默认还是Python2.7,不需要修改yum配置。

ln -sf /usr/local/python3/bin/python3.9 /usr/local/bin/python3
# 软链接至/bin/python3方便写脚本
ln -fs /usr/local/python3/bin/python3.9 /bin/python3
ln -sf /usr/local/python3/bin/pip3 /usr/local/bin/pip3

设置pip源

cat > /etc/pip.conf << EOF
[global]
trusted-host = mirrors.aliyun.com
index-url = http://mirrors.aliyun.com/pypi/simple/

[list]
format=columns
EOF

引起 yum 命令(非必须)

sudo vim /usr/bin/yum
sudo vim /usr/libexec/urlgrabber-ext-down
把文件里面的#!/usr/bin/python 也修改为#! /usr/bin/python2
posted @ 2022-09-25 12:08  Sherwin_szw  阅读(728)  评论(0编辑  收藏  举报