关于linux版本的openssl的版本过低, URllib使用的时候报错
安装依赖 下面是安装前所需的依赖
yum install - y zlib zlib- dev openssl- devel sqlite- devel bzip2- devel libffi libffi- devel gcc gcc- c++
下载tar包
# 官网 https: / / www. openssl. org/ source/
# 历史版本 https: / / www. openssl. org/ source/ old/
# 下载
wget https: / / www. openssl. org/ source/ old/ 1.1 .1 / openssl- 1.1 . 1h. tar. gz
tar - zxvf openssl- 1.1 . 1h. tar. gz - C / export / server/
cd / export / server/ openssl- 1.1 . 1h
# 目录如下
. / configure -- prefix= / usr/ local/ openssl- 1.1 . 1h
# 编译并安装
make && make install
更改软连接
mv / usr/ bin/ openssl / usr/ bin/ openssl. back
# 建立新的软连接
ln - s / usr/ local/ openssl- 1.1 . 1h/ bin/ openssl / usr/ bin/ openssl
#
echo "/usr/local/openssl-1.1.1h/lib" >> / etc/ ld. so. conf
#
ldconfig - v
# 查看版本
openssl version
ldconfig 命令用于在默认搜寻目录 / lib 和 / usr/ lib 以及动态库配置文件 / etc/ ld. so. conf 内所列的目录下,搜索出可共享的动态链接库(格式如 lib* . so* ),进而创建出动态链接器(ld. so 或 ld- linux. so)所需的缓存文件。缓存文件默认为 / etc/ ld. so. cache,此文件保存已排好序的动态链接库名字列表。为了让动态链接库为系统所共享,需运行动态链接库的管理命令 ldconfig 更新动态链接库的缓存文件。
1 、 - v或-- verbose: 用此选项时, ldconfig将显示正在扫描的目录及搜索到的动态链接库, 还有它所创建的连接的名字.
2 、- n : 用此选项时, ldconfig仅扫描命令行指定的目录, 不扫描默认目录 ( / lib, / usr/ lib) , 也不扫描配置文件/ etc/ ld. so. conf所列的目录.
3 、- N : 此选项指示ldconfig不重建缓存文件 ( / etc/ ld. so. cache) . 若未用- X 选项, ldconfig照常更新文件的连接.
4 、- X : 此选项指示ldconfig不更新文件的连接. 若未用- N 选项, 则缓存文件正常更新.
5 、- f CONF : 此选项指定动态链接库的配置文件为CONF , 系统默认为/ etc/ ld. so. conf.
6 、- C CACHE : 此选项指定生成的缓存文件为CACHE , 系统默认的是/ etc/ ld. so. cache, 此文件存放已排好序的可共享的动态链接库的列表.
7 、- r ROOT : 此选项改变应用程序的根目录为ROOT ( 是调用chroot函数实现的) . 选择此项时, 系统默认的配置文件/ etc/ ld. so. conf, 实际对应的为ROOT / etc/ ld. so. conf. 如用- r/ usr/ zzz时, 打开配置文件/ etc/ ld. so. conf时, 实际打开的是/ usr/ zzz/ etc/ ld. so. conf文件. 用此选项, 可以大大增加动态链接库管理的灵活性.
8 、- l : 通常情况下, ldconfig搜索动态链接库时将自动建立动态链接库的连接. 选择此项时, 将进入专家模式, 需要手工设置连接. 一般用户不用此项.
9 、- p或-- print- cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.
10 、- c FORMAT 或-- format= FORMAT : 此选项用于指定缓存文件所使用的格式, 共有三种 : ld ( 老格式) , new ( 新格式) 和compat ( 兼容格式, 此为默认格式) .
11 、- V : 此选项打印出ldconfig的版本信息, 而后退出.
12 、- 或 -- help 或-- usage : 这三个选项作用相同, 都是让ldconfig打印出其帮助信息, 而后退出. 、
新版本的openssl成功安装后, 我删除了安装后的python包和解压的python包,因为我安装的时候遇到问题,编译是正常的,但是安装就是失败
# 删除安装的python
rm - rf / usr/ local/ python3
# 删除解压的python
rm - rf / export / server/ Python- 3.8 .18
#
tar - zxvf Python- 3.8 .18 . tgz - C / export / server/
编译之前可以先清除缓存
#
cd / export / server/ Python- 3.8 .18
# 可以清除之前的一些安装缓存
make clean
编译过才有clean操作,否则提示找不到
开始编译安装 ./configure --help
有我们编译需要的参数
-- with ( out) - ensurepip= [ = upgrade]
"install" or "upgrade" using bundled pip
-- with - openssl= DIR root of the OpenSSL directory
-- with - ssl- default - suites= [ python| openssl| STRING ]
Override default cipher suites string, python : use
Python's preferred selection ( default ) , openssl :
leave OpenSSL's defaults untouched, STRING : use a
custom string, PROTOCOL_SSLv2 ignores the setting
# 编译
. / configure -- prefix= / usr/ local/ python3 -- enable- shared -- with - openssl= / usr/ local/ openssl- 1.1 . 1h/ -- with - openssl= auto
#
make && make install
编译没有异常就是编译OK, 我的是再次编译,最后提示添加重新编译参数 20. ### 编译成功如下