could not build the ssl module!
基于源码安装python 3.12,执行make
出现如下错误
_hashlib _ssl _tkinter
to find the necessary bits, look in configure.ac and config.log.
could not build the ssl module!
python requires a openssl 1.1.1 or newer
checked 111 modules (31 built-in, 76 shared, 1 n/a on linux-x86_64, 0 disabled, 3 missing, 0 failed on import)
openssl 官网
版本推荐
[root@izwz98v1pircy9j9329rhrz local]# pwd
/usr/local
[root@izwz98v1pircy9j9329rhrz local]# ll
total 60
drwxr-xr-x 8 root root 4096 apr 4 20:22 aegis
drwxr-xr-x. 2 root root 4096 apr 4 20:21 bin
drwxr-xr-x. 2 root root 4096 apr 11 2018 etc
drwxr-xr-x. 2 root root 4096 apr 11 2018 games
drwxr-xr-x. 4 root root 4096 apr 4 19:07 include
drwxr-xr-x. 5 root root 4096 apr 4 20:02 lib
drwxr-xr-x. 6 root root 4096 apr 4 17:16 lib64
drwxr-xr-x. 2 root root 4096 apr 11 2018 libexec
drwxr-xr-x 7 root root 4096 apr 4 19:33 openssl1.1.1w 【可以】
drwxr-xr-x 9 root root 4096 apr 4 20:50 openssl3.0.1 【不可以】
drwxr-xr-x 7 root root 4096 apr 4 18:58 openssl3.2.1 【不可以】
drwxr-xr-x. 2 root root 4096 apr 11 2018 sbin
drwxr-xr-x. 8 root root 4096 apr 4 17:17 share
drwxr-xr-x. 2 root root 4096 apr 11 2018 src
drwxr-xr-x 5 root root 4096 apr 4 17:16 ssl
安装openssl
- openssl找到1.1.1版本
- 下载上传到服务器
[root@izwz98v1pircy9j9329rhrz ~]# ll
total 1112740
-rw-r--r-- 1 root root 1069373440 apr 4 14:47 mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 root root 9893384 apr 4 19:29 openssl-1.1.1w.tar.gz
drwxrwxr-x 21 root root 4096 apr 4 20:29 openssl-3.0.13
-rw-r--r-- 1 root root 15294843 apr 4 17:03 openssl-3.0.13.tar.gz
drwxrwxr-x 26 root root 4096 apr 4 20:50 openssl-3.2.1
-rw-r--r-- 1 root root 17733249 apr 4 14:23 openssl-3.2.1.tar.gz
drwxr-xr-x 18 root root 4096 apr 4 21:38 python-3.12.2
-rw-r--r-- 1 root root 27116462 apr 4 15:01 python-3.12.2.tgz
- 解压
[root@izwz98v1pircy9j9329rhrz openssl-1.1.1w]# tar -zxvf openssl-1.1.1w.tar.gz```
4. 进入目录
```bash
[root@izwz98v1pircy9j9329rhrz ~]# cd openssl-1.1.1w/
[root@izwz98v1pircy9j9329rhrz openssl-1.1.1w]#
- 运行配置文件,指定安装路径,安装到/usr/local/openssl目录下
[root@izwz98v1pircy9j9329rhrz openssl-1.1.1w]# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
operating system: x86_64-whatever-linux2
configuring openssl version 1.1.1w (0x1010117fl) for linux-x86_64
using os-specific seed configuration
creating configdata.pm
creating makefile
**********************************************************************
*** ***
*** openssl has been successfully configured ***
*** ***
*** if you encounter a problem while building, please open an ***
*** issue on github <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (if you are new to openssl, you might want to consult the ***
*** 'troubleshooting' section in the install file first) ***
*** ***
**********************************************************************
[root@izwz98v1pircy9j9329rhrz openssl-1.1.1w]#
- 编译
[root@izwz98v1pircy9j9329rhrz openssl-1.1.1w]# make
- 安装
[root@izwz98v1pircy9j9329rhrz openssl-1.1.1w]# make install
- 切换目录/usr/bin,备份原始的openssl
[root@izwz98v1pircy9j9329rhrz bin]# mv openssl openssl.bak
[root@izwz98v1pircy9j9329rhrz bin]# pwd
/usr/bin
[root@izwz98v1pircy9j9329rhrz bin]# ll | grep openssl
-rwxr-xr-x 1 root root 555280 mar 21 2023 openssl.bak
- 创建软连接,使执行openssl时使用新版本的openssl
[root@izwz98v1pircy9j9329rhrz bin]# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
[root@izwz98v1pircy9j9329rhrz bin]# ll | grep openssl
lrwxrwxrwx 1 root root 30 apr 4 18:52 openssl -> /usr/local/openssl/bin/openssl
-rwxr-xr-x 1 root root 555280 mar 21 2023 openssl.bak
- 将安装路径添加到环境变量
export ld_library_path=/usr/local/openssl/lib:$ld_library_path
[root@izwz98v1pircy9j9329rhrz ~]# pwd
/root
[root@izwz98v1pircy9j9329rhrz ~]# cat .bashrc
# .bashrc
# user specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export ld_library_path=/usr/local/openssl/lib:$ld_library_path
[root@izwz98v1pircy9j9329rhrz ~]#
- 运行 source .bashrc 的目的是重新加载当前用户的 .bashrc 文件,以便应用其中所做的更改,而无需注销并重新登录。
[root@izwz98v1pircy9j9329rhrz ~]# source .bashrc
- 更新共享库的链接器缓存
[root@izwz98v1pircy9j9329rhrz ~]# ldconfig
- 检查是否安装成功
[root@izwz98v1pircy9j9329rhrz ~]# openssl version
openssl 1.1.1w 11 sep 2023
安装python
-
官网下载python最新版本,我选择3.12版本
-
上传到服务器
[root@izwz98v1pircy9j9329rhrz ~]# ll
total 1112736
-rw-r--r-- 1 root root 1069373440 apr 4 14:47 mysql-8.3.0-1.el7.x86_64.rpm-bundle.tar
drwxrwxr-x 19 root root 4096 apr 4 22:00 openssl-1.1.1w
-rw-r--r-- 1 root root 9893384 apr 4 19:29 openssl-1.1.1w.tar.gz
drwxrwxr-x 21 root root 4096 apr 4 20:29 openssl-3.0.13
-rw-r--r-- 1 root root 15294843 apr 4 17:03 openssl-3.0.13.tar.gz
drwxrwxr-x 26 root root 4096 apr 4 20:50 openssl-3.2.1
-rw-r--r-- 1 root root 17733249 apr 4 14:23 openssl-3.2.1.tar.gz
-rw-r--r-- 1 root root 27116462 apr 4 15:01 python-3.12.2.tgz
- 解压
[root@izwz98v1pircy9j9329rhrz ~]# tar -zxvf python-3.12.2.tgz
- 进入解压好的文件,执行配置文件,安装到/usr/local/python3.12
[root@izwz98v1pircy9j9329rhrz python-3.12.2]# ./configure --prefix=/usr/local/python3.12 --with-openssl=/usr/local/openssl
- 编译
[root@izwz98v1pircy9j9329rhrz python-3.12.2]# make
- 安装
[root@izwz98v1pircy9j9329rhrz python-3.12.2]# make install
- 检查是否安装成功
[root@izwz98v1pircy9j9329rhrz bin]# /usr/local/python3.12/bin/python3.12
python 3.12.2 (main, apr 4 2024, 22:39:22) [gcc 4.8.5 20150623 (red hat 4.8.5-44)] on linux
type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
>```
发表评论