如何在 centos 7 上链接 python3 以使用 openssl11/或最新版本的 openssl (1.1.1)

2024-02-06

我们想在centos 7中升级OpenSSL但没有成功,原因可能是这样的。通过 yum install openssl11 将 CentOS 7 升级到 OpenSSL 1.1.1 https://stackoverflow.com/questions/63508872/upgrading-centos-7-to-openssl-1-1-1-by-yum-install-openssl11

我开始知道 openssl11 是用于“现场”使用的。我们可以将 python / pyOpenssl 与 openssl11 链接起来吗? 如果可以请给我流程


我今天刚刚在 CentOS 7 上构建 Python 3.10 时遇到了这个问题,并在试图解决这个问题时发现了这个线程。就我而言,我只是尝试构建所有 Python,包括它默认尝试构建的 SSL 模块。接下来的内容可能适用于也可能不适用于自行构建 pyOpenSSL。

我发现配置脚本似乎被设计为与安装在 /usr/lib64 和 /usr/include 中的正常位置的 OpenSSL 文件一起使用,或者安装在您可以在命令行上使用 - 指定的单个位置中-with-openssl参数,在该参数下可以直接找到包含文件和库。 RHEL/CentOS 7 中的“openssl11-devel”软件包无法满足这些期望,据我所知,这无法在配置命令行上处理。

我发现解决这个问题的最简单方法就是更改脚本与其 pkg-config 查询一起使用的库名称,这样它就可以从 .pc 文件中获取正确的详细信息,幸运的是该文件位于 /usr/ 下的标准位置lib64/pkgconfig 但名称不同。

我使用的方法恰好适用于 CentOS 7 上安装的 Python3.10.0,但不可否认它很脆弱,并且可能无法继续适用于其他版本。从源目录中:

sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure

完成上述操作后,我运行./configure。我在输出中看到:

检查针对 OpenSSL 的编译和链接是否有效...是的

...而不是我之前得到的“不”。

可能无关——无论出于何种原因,我都无法在 CentOS 7 上使用 --enable-optimizations 进行编译。我收到“无法导入 runpy 模块”错误,所以我没有它的配置 https://audun-nes.medium.com/sideload-python-3-on-a-centos-7-with-python-2-installed-eb6cd01928cd.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 centos 7 上链接 python3 以使用 openssl11/或最新版本的 openssl (1.1.1) 的相关文章

随机推荐