用于测试的备用Perl环境

时间:2016-03-30 21:18:00

标签: testing perl install

我的testing environment包含一些较旧的平台。我试图在较旧的Debian 6平台上测试OpenSSL,而OpenSSL测试脚本在使用Perl 5.10时遇到了麻烦。因此,我在运行OpenSSL测试套件时,正在尝试修复" Test :: More版本0.96所需..."

我下载了Perl 5.22.1,从源代码构建它,并使用/opt/perl将其安装在./configure -des -Dprefix=/opt/perl中:

$ ls /opt/perl/
bin  lib

$ ls -Al /opt/perl/bin/ | grep perl
-rwxr-xr-x 2 root root 1879707 Mar 30 12:01 perl
-rwxr-xr-x 2 root root 1879707 Mar 30 12:01 perl5.22.1
-rwxr-xr-x 2 root root   45365 Mar 30 12:01 perlbug
...

$ ls /opt/perl/lib
5.22.1  site_perl

我创建了一个脚本来将调用转发到新的Perl:

$ which perl
/usr/local/bin/perl

$ cat /usr/local/bin/perl
#!/usr/bin/env bash

LD_LIBRARY_PATH="/opt/perl/lib:$LD_LIBRARY_PATH"; PERL5LIB="/opt/perl/lib/5.22.1:$PERL5LIB"; \
/opt/perl/bin/perl5.22.1 "$@"

然而,当我运行OpenSSL测试脚本时,我继续遇到"测试::更多版本需要0.96 ..." (包含和不包含{{1} }):

PERL5LIB

我在这台测试机器上显然对新的Perl做错了。

Perl安装有什么问题?

$ make test ( cd test; \ SRCTOP=../. \ BLDTOP=../. \ EXE_EXT= \ OPENSSL_ENGINES=.././engines \ /usr/bin/perl .././test/run_tests.pl ) ../test/recipes/01-test_abort.t ........... Test::More version 0.96 required--this is only version 0.92 ... 可用:

Test::More

它似乎是符合要求的版本:

$ find /opt/perl -name '*More*'
/opt/perl/lib/5.22.1/Test/More.pm

相关,我没有Perl的经验,所以我有很多差距。我认为它与$ cat /opt/perl/lib/5.22.1/Test/More.pm | grep VERSION our $VERSION = '1.001014'; $VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval) 有关,因为PERL5LIB似乎与它有关。 Perl的INSTALL有这样说:

  

使用较新的perl时,可以再次添加这些路径   PERL5LIB环境变量或perl的-I运行时选项。

我不太清楚为什么新的PM文件默认不包含在新的Perl中。我不明白为什么通过Test::More添加它们并不能解决问题。所以我想这意味着PERL5LIB不是问题的一部分。

1 个答案:

答案 0 :(得分:2)

调试这些永远不会有趣......

你的问题是当你make test最终确实/usr/bin/perl .././test/run_tests.pl时会引入旧的Perl,而不是你创建的新Perl。

您需要弄清楚/ usr / bin / perl从哪里获取,或者将新的Perl放在那里。一个自然的猜测是你开始使用旧的Perl进行安装,安装新的Perl,回到原来的Perl,并且它具有原始配置。