Python版本需要和openssl的版本需要相对匹配,在Python3.7之后的版本,依赖的openssl必须要是1.1.1或1.0.2之后的版本,而CentOS7安装的openssl1.0.2k无法其满足要求,这将会导致在使用pip命令在线安装库文件时出错。因此,需要升级openssl,最好是安装完openssl再重新编译安装python3。

在这里插入图片描述

在这里插入图片描述

一、安装新版openssl3.1.4

使用yum命令安装相关依赖,没有这一步,后面安装python很可能会出错,pip问题也未能得到解决。

yum group install 'Development Tools'

yum -y install zlib-devel zlib perl*

yum -y install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl openssl-devel xz xz-devel libffi-devel libuuid-devel perl-core epel-release tk-devel ncurses-libs gdbm-devel libdbi-devel python-backports-lzma

更新系统已安装软件

yum -y install

下载OpenSSL

这里选择安装openssl3.1.4,也可以安装其他版本,源代码可在https://www.openssl.org/source/下载

先切换到/usrlocal/src目录下,在使用wget下载源代码,下载完成后提取openssl3.1.4.tar.gz文件,并切换到openssl-3.1.4目录

cd /usr/local/src/

wget https://www.openssl.org/source/openssl-3.1.4.tar.gz

tar -xzvf openssl-3.1.4.tar.gz

cd opensl-3.1.4

编译、安装openssl3.1.4

目录为参考,自己可指定目录安装:–prefix=自定义目录

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --shared zlib

编译源代码

make

安装前测试,最后输出结果有pass说明无错误可安装

make test

开始安装

make install

配置链接

配置openssl的共享库,使openssl二进制文件从/usr/local/openssl/lib目录加载库文件。

切换到/etc/ld.so.cof.d目录下,创建新的配置文件:openssl-3.1.4.conf

cd /etc/ld.so.conf.d/

vim openssl-3.1.4.conf

按i,然后复制下面并黏贴openssl库路径目录,保存退出(按Esc,然后键入单引号中的内容 ’ :wq’,最后按Enter回车)
/usr/local/openssl/lib64

重载动态链接,/usr/local/ssl/lib目录下的openssl库已经被加载了

ldconfig -v

备份旧的软连接

mv /bin/openssl /bin/openssl.bak

mv /usr/bin/openssl /usr/bin/openssl.bak

mv /usr/include/openssl /usr/include/openssl.bak 

mv /usr/local/bin/openssl /usr/local/bin/openssl.bak

mv /usr/lib64/libssl.so.1.0.2k /usr/lib64/libssl.so.1.0.2k.bak

mv /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.2k.bak

创建新的软连接(不存在链接跳过即可)

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/openssl/include/openssl /usr/include/openssl

ln -s /usr/local/openssl/bin/openssl /usr/local/bin/openssl

ln -s /usr/local/openssl/lib64/libcrypto.so.3 /lib/libcrypto.so.3

ln -s /usr/local/openssl/lib64/libcrypto.so.3 /lib/libcrypto.so.6

ln -s /usr/local/openssl/lib64/libssl.so.3  /usr/lib64/libssl.so.3

ln -s /usr/local/openssl/lib64/libcrypto.so.3  /usr/lib64/libcrypto.so.3

ln -s /usr/local/openssl/lib64/libssl.so  /usr/lib64/libssl.so

ln -s /usr/local/openssl/lib64/libcrypto.so  /usr/lib64/libcrypto.so

如果链接已存在无法创建,可以考虑备份或删除 #查看软链接(符号链接)指向的目标文件

readlink -f 软链接名称

#备份

mv 软链接名称 软链接名称.bak

#删除

rm -rf 软链接名称

修改目录权限

chmod -R 755 /usr/local/openssl/

配置库文件搜索路径

echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf

重新配置动态链接器的缓存,-v 输出详细信息

/sbin/ldconfig -v

为openssl创建新的环境文件

vim /etc/profile.d/openssl.sh

将下面的配置信息黏贴到openssl.sh文件中,然后保存退出

#Set OPENSSL_PATH

OPENSSL_PATH="/usr/local/openssl/bin"

export OPENSSL_PATH

PATH=$PATH:$OPENSSL_PATH

export PATH

赋予openssl.sh文件执行权限,不然将无法执行

chmod +x /etc/profile.d/openssl.sh

加载openssl环境并检查PATH bin目录

source /etc/profile.d/openssl.sh
echo $PATH

检查openssl文件

which openssl

查看openssl是否为刚才安装的3.1.4版本

openssl version -a
GitHub 加速计划 / ope / openssl
25.12 K
9.99 K
下载
传输层安全性/安全套接层及其加密库
最近提交(Master分支:1 个月前 )
fd39d1c8 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/25095) 2 个月前
ae87c488 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/25095) 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐