あるLinux環境でCrypt::SSLeayをインストールしようとするとテストが通らない。
$ cpanm -v Crypt::SSLeay
...
t/00-basic.t .... ok
t/01-connect.t .. 1/8
# Failed test 'Net::SSL->new'
# at t/01-connect.t line 28.
# Connect failed: connect: 接続を拒否されました; 接続を拒否されました at t/01-connect.t line 11
# Looks like you failed 1 test of 8.
t/01-connect.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/8 subtests
(less 7 skipped subtests: 0 okay)
t/02-live.t ..... 1/4 # config on linux
# ssl OpenSSL 1.0.0-beta3 in /usr;
# lib -L -lssl -lcrypto -lgcc
# inc -I/usr/include
# cc cc
t/02-live.t ..... ok
Test Summary Report
-------------------
t/01-connect.t (Wstat: 256 Tests: 8 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Files=3, Tests=24, 0 wallclock secs ( 0.05 usr 0.01 sys + 0.22 cusr 0.03 csys = 0.31 CPU)
Result: FAIL
Failed 1/3 test programs. 1/24 subtests failed.
make: *** [test_dynamic] エラー 255
FAIL
! Installing Crypt::SSLeay failed. See /home/sugyan/.cpanm/build.log for details.どうやらNet::SSL->newが失敗したときのエラーメッセージが日本語で出てきてしまっているかららしい。テスト内部では英語のエラーメッセージが期待されているためコケてしまうようだ。
ということで
$ LANG=C cpanm -v Crypt::SSLeay
とすればインストールできるようになるらしい。
このエラーメッセージの言語ってどこで決まるんだろう?手元のMac OS X環境ではLANG=ja_JP.UTF-8でも問題ないのだけど…。