IO::Socket::SSL“内存不足”安装错误

IO::Socket::SSL“内存不足”安装错误

我想在 Solaris 10 计算机上安装 OcsInventory Unix Agent 2.8。perl Makefile.PL在目录中运行命令时,它会列出代理正常运行所需的模块,例如

Please install Net::SSLeay if you want to use the software deployment.  
Please install nmap if you want to use the network discover feature.  
Warning: prerequisite IO::Socket::SSL 0 not found.  
Generating a Unix-style Makefile  
Writing Makefile for Ocsinventory::Unix::Agent  
Writing MYMETA.yml and MYMETA.json

所以我的工作是解决这些依赖关系并使其正常工作。我尝试IO::Socket::SSL在从 metacpan.org 下载包后安装它,但perl Makefile.PL命令只是抛出一个内存不足!错误。还尝试从 CPAN-shell 安装它,但遇到了与以前版本的软件包相同的错误。计算机有 8GB 内存,所以这不应该是问题的根源... 您能给出一些建议,如何从这里继续吗?

答案1

谢谢斯特芬·乌尔里希我能够解决这个问题。虽然不完美,但还是有效。错误消息

Can't load '/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/Net/SSLeay/SSLeay.so'  
for module Net::SSLeay: ld.so.1: perl: fatal: libssl.so.1.0.0: open failed:  
No such file or directory at /usr/perl5/5.8.4/lib/sun4-solaris-64int/DynaLoader.pm line 230.  
at -e line 0  
Compilation failed in require.  
BEGIN failed--compilation aborted.

对于命令

perl -MNet::SSLeay -e 'printf "%0x %0x %s\n", Net::SSLeay::OPENSSL_VERSION_NUMBER(), Net::SSLeay::SSLeay(), $Net::SSLeay::VERSION'

显示未找到 libssl.so.1.0.0 库,因此我运行命令 find ./ -name libssl.so.1.0.0来找出它在系统上的位置。

之后我将结果添加到$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/usr/sfw/lib:/opt/csw/lib:/opt/csw/lib/sparcv9

IO::Socket::SSL现在从 CPAN shell安装包时会引发"API-different OpenSSL versions compiled in (0x1000000f) vs linked (0x1000215f) at Makefile.PL line 68."错误。

Net::SSLeay用 cpanminus 删除了该模块:

cpanm --uninstall Net::SSLeay

然后从 CPAN shell 重新安装它:

notest install Net::SSLeay

它成功完成但仍然抛出了一些有趣的消息:

gcc -c  -I"/usr/local/ssl/include" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO -O2 -fno-strict-aliasing   -DVERSION=\"1.90\" -DXS_VERSION=\"1.90\" -fPIC "-I/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE"   SSLeay.c  
SSLeay.xs: In function `bn2sv':  
SSLeay.xs:1765: warning: cast from pointer to integer of different size

之后,我尝试手动安装该IO::Socket::SSL软件包的旧版本(2.020 版本而不是 2.070 版本),并且成功了!

相关内容