以centos7为例 将python升级到3.10.11
1、安装必备软件包:
## 第一步 基础包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel gcc
## 第二步 安装db4-devel,必先安装epel-release
yum install epel-release
yum install db4-devel
2、下载python3.10.11,并解压到指定目录/opt/tools
wget --no-check-certificate https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz
tar -zxf Python-3.10.11.tgz -C ./
3、创建安装目录,并到上步解压目录Python-3.10.11下进行编译安装
mkdir /usr/local/python3.10
## 指定安装目录
./configure --prefix=/usr/local/python3.10
编译时,若报如下错误,则需要先行处理
解决:
3.1 Python需要OpenSSL 1.1.1(换其它更高的版本可能会有不兼容的问题,笔者亲自试过,才又改回用openssl1.1.1q版本来编译),查看当前openssl版本
3.2 这里安装openssl-1.1.1q.tar.gz, 通过如命令下载源码并解压到指定目录
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1q.tar.gz
tar -zxf openssl-1.1.1q.tar.gz -C /opt/tools/
3.3 进入解压目录/opt/tools/openssl-1.1.1q,编译安装openssl
./config --prefix=/usr/local/openssl
make && make install
针对如下3.3.1-3.3.3的问题,若编译安装openssl没有出现,可忽略(如下的错误用的是openssl-3.1.4出现的)
编译时报/usr/bin/env: perl: No such file or directory,出现这种错误可能是没有安装prel(注:每个人的环境不一致),需要先安装prel
3.3.1 先安装prel 所需的依赖
yum install readline-devel pcre-devel openssl-devel gcc
3.3.2 在 Linux 发行版下使用指定包管理软件,常常只能安装指定的perl,如果需要安装特定版本 perl,就需要编译安装,
源码从这里获取: http://www.cpan.org/src/5.0/,以 perl 5.28.1 为例
## 下载源码
wget http://www.cpan.org/src/5.0/perl-5.28.1.tar.gz
tar -xzf perl-5.28.1.tar.gz
cd perl-5.28.1
## 编译配置 ./Configure -des -Dprefix=/usr/local/perl
## 编译安装
make && make install
## 查看安装完成后的版本
perl -v
3.3.3 若出现如下错误,则需要创建pod2man的软链接
yum install perl-podlators
3.3.4 上述处理完后,查看是否安装成功 ,若出现如下错误 (注:openss记得拼上路径,即/usr/local/opensll/bin/opensll)
第一种解决方案:
更新共享库缓存:运行以下命令更新共享库缓存,这将刷新系统的共享库缓存,使系统能够正确找到和加载共享库
sudo ldconfig再次检查库文件路径,运行以下命令检查库文件路径:
ldconfig -p | grep libssl.so.3
-
如果没有输出或找不到该库文件,直接通过find 查找看是否有,
-
若查找到了,则将它添加到共享库文件中,即编辑
/etc/ld.so.conf
文件并添加共享库文件所在的目录。例如,在文件中添加一行
find / -name libssl.so.1.1
## 对应libssl.so.3所在目录 /usr/local/openssl/lib64
## 再次刷新共享库缓存
sudo ldconfig
第二种解决方案:
执行以下命令即可: 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 echo “/usr/local/openssl/lib” >> /etc/ld.so.conf ldconfig
3.4 替换老版本的 openssl
mv /usr/bin/openssl /usr/bin/openssl.bak mv /usr/include/openssl /usr/include/openssl.bak ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl/include/openssl /usr/include/openssl
4、解决完上述错误后,继续执行如命令编译安装Python-3.10.11
./configure --prefix=/usr/local/python3.10
make && make install
##创建python3软链接
ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3
python3 --version
有如上结果输出,表示python3.10.11 版本已安装完成
标签:python,安装,openssl,devel,usr,版本,linux,perl,local From: https://www.cnblogs.com/dinghong-jo/p/17799887.html