在 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++ 库时崩溃
从 Jenkins 管道运行脚本时,如何通过 ssh 在远程 AIX 机器中加载环境变量?