Subscribed unsubscribe Subscribe Subscribe

Crypt::SSLeayがLANGの関係でインストールできないとき

ある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でも問題ないのだけど…。