c/fe

http://d.hatena.ne.jp/uzulla から移行しました。

Crypt::SSLeayのインストールで一瞬躓いた

LWP::UAはCrypt::SSLeayがないとHTTPS通信ができないよねー、って事で入れた。

t/00-basic......#     Failed test (t/00-basic.t at line 6)
#     Tried to use 'Crypt::SSLeay'.
#     Error:  Can't load '/root/.cpan/build/Crypt-SSLeay-0.55/blib/arch/auto/Crypt/SSLeay/SSLeay.so' for module Crypt::SSLeay: /root/.cpan/build/Crypt-SSLeay-0.55/blib/arch/auto/Crypt/SSLeay/SSLeay.so: undefined symbol: OPENSSL_add_all_algorithms_noconf at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229.
#  at (eval 1) line 2
# Compilation failed in require at (eval 1) line 2.
#     Failed test (t/00-basic.t at line 10)
#     Tried to use 'Crypt::SSLeay::MainContext'.
#     Error:  Can't locate object method "new" via package "Crypt::SSLeay::CTX" at /root/.cpan/build/Crypt-SSLeay-0.55/blib/lib/Crypt/SSLeay/MainContext.pm line 15.
# Compilation failed in require at (eval 5) line 2.

普通にCPANから入れようとしたら、上記エラーが。


理由は単純でconfigure時に

Skipping testcover target, ExtUtils::MakeMaker::Coverage not found
Found multiple possibilities for OpenSSL
  /usr/local/ssl (OpenSSL 0.9.6)
  /usr (OpenSSL 0.9.7)
Which SSL install path do you want to use? [/usr/local/ssl]

って書いてある通りで、なにも考えずEnterを押してしまったので、Makeに使われるライブラリが古く、実行時には/usr以下の新しい物が使われていたから。

普通に/usrを指定して解決…。


と行かず、

t/01-connect....#     Failed test (t/01-connect.t at line 22)
# Connect failed: connect: 接続を拒否されました; 接続を拒否されました at t/01-connect.t line 8
# Looks like you failed 1 tests of 8.

とか言われた。
まあどうせテストで存在しないサーバーでも叩いているのだろうという事で無視してmake installして終了。

  • -

なんで/usr/local/ssl以下に古いのがあるんだ?というのにはまあ事情があるけど割愛