在 AIX 上安装 Perl Net-SSLeay

Posted

技术标签:

【中文标题】在 AIX 上安装 Perl Net-SSLeay【英文标题】:Perl Net-SSLeay installation on AIX 【发布时间】:2018-11-27 16:41:51 【问题描述】:

为 Net-SSLeay 运行 make test 时,重复此错误。

“使用 Net::SSLeay::Handle;”测试失败

在 t/handle/local/05_use.t 第 8 行。

尝试使用“Net::SSLeay::Handle”。

错误:无法为模块 Net::SSLeay: rtld: 0712-001 符号 EVP_DigestInit 加载 '/ld01/perlsrc/Net-SSLeay-1.85/blib/arch/auto/Net/SSLeay/SSLeay.so'引用了

来自模块 /ld01/perlsrc/Net-SSLeay-1.85/blib/arch/auto/Net/SSLeay/SSLeay.so(),但运行时定义

找不到符号。

系统运行 AIX 7.1 Perl 5.24.4 和 openssl 1.0.2o 均使用 gcc 6.3(64 位)编译

以前有人见过这个错误吗?

【问题讨论】:

首先,找到您的libcrypto.so 文件并检查它是否导出此符号:根据您的系统编辑此命令:dump -Tv -X64 /usr/local/lib64/libcrypto.so | grep EVP_DigestInit(注意:我已经写了一些关于链接的随机想法AIX,您可能想阅读它:web.axelero.hu/lzsiga/aix-linking.html) 【参考方案1】:

问题出在我们安装的 openssl 1.0.2o 上。它被构建为 32 位。我们通过在运行 config 和 make 命令之前导出 OBJECT_MODE=64 来重建它来修复它。

顺序如下: 对于openssl

导出 OBJECT_MODE=64

配置——制作——制作测试——制作安装

对于 Net-SSLeay

export OPENSSL_PREFIX=/usr/local/ssl(openssl 安装在我们的系统上)

perl Makefile.PL -- make -- make test -- make install

正确安装了 Net-SSLeay。

【讨论】:

以上是关于在 AIX 上安装 Perl Net-SSLeay的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Net-SSLeay 停止通过 GitHub 工作流程在 macOS 上安装?

使用 SWIG (AIX 5.1) 从 Perl 调用 C++ 库时崩溃

Perl-Tk入门教程 - 创建一个窗口

从 Jenkins 管道运行脚本时,如何通过 ssh 在远程 AIX 机器中加载环境变量?

如何在 Perl 中使用带有管道的 Unix/AIX find 命令?

在 aix 上安装 Python