2016-03-30 14 views
1

私のtesting environmentには、いくつかの古いプラットフォームが含まれています。私は古いDebian 6プラットフォームでOpenSSLをテストしようとしていますが、OpenSSLテストスクリプトはPerl 5.10に問題があります。だから、私は"Test :: More version 0.96 required ..."を修正しようとしています。 OpenSSLのテストスイートを実行しています。テスト用の代替Perl環境

私は、Perlの5.22.1ダウンロードした情報源からそれを構築し、./configure -des -Dprefix=/opt/perl/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 "[email protected]" 

しかし、OpenSSLテストスクリプトを実行すると、私は"Test :: More version 0.96 required ..."というメッセージが表示され続けます。(両方ともPERL5LIBの有無にかかわらず):

$ 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 
... 

私は明らかにこのテストマシンで新しいPerlに何か間違っています。

Perlのインストールに問題がありますか?


Test::More提供されています:

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

そして、要件を満たしているバージョンのようだ:

$ cat /opt/perl/lib/5.22.1/Test/More.pm | grep VERSION 
our $VERSION = '1.001014'; 
$VERSION = eval $VERSION; ## no critic (BuiltinFunctions::ProhibitStringyEval) 

関連、私はPerlで経験していないよ、そう私には多くのギャップがあります。 Test::Moreがそれに関連しているようだから、PERL5LIBと関係があると思った。

新しいPerlを使用して、あなたは PERL5LIB環境変数やPerlの-Iランタイムオプションを指定して、再びこれらのパスを追加することができますPerlのINSTALLが、これは言っています。

新しいPMファイルが新しいPerlにデフォルトで組み込まれない理由はよくわかりません。そして私がなぜPERL5LIB経由でそれらを追加しても問題が解決されないのは分かりません。だから私はそれはPERL5LIBが問題の一部ではないことを意味すると思います。

答えて

2

...これらは決して楽しいですデバッグ

あなたの問題は、あなたmake testそれが最終的に/usr/bin/perl .././test/run_tests.plしたときに作成した新しいPerlを古いPerlで引っ張っていくとされていないということです。

どこから/ usr/bin/perlを取得するか、そこに新しいPerlを置く必要があります。自然な推測では、古いPerlでインストールを開始し、新しいPerlをインストールし、新しいPerlをインストールし、元のPerlに戻して元の設定に戻したということです。

+0

あなたが正しいと思われます。ほとんどの場所で '/ usr/bin/env perl'(約120個)でハードコーディングをクリアしましたが、そのメイクファイルにはハードコーディングされています。私は 'make test PERL =/usr/local/bin/perl'が必要でした。 – jww

関連する問題