OpenID プロトコルの実験用に Perl で「ちょいプロ」を作ってみようと思って、Net::OpenID::Consumer モジュールを CPAN でインストール。だけど失敗(^^;
# perl -MCPAN -e shellcpan shell -- CPAN exploration and modules installation (v1.9800)Enter 'h' for help.cpan[1]> install Net::OpenID::ConsumerReading '/root/.cpan/Metadata'Database was generated on Mon, 13 May 2013 17:41:02 GMTFetching with LWP:ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/authors/01mailrc.txt.gz<略>make test had returned bad status, won't install without forceCould not read metadata file. Falling back to other methods to determine prerequisitesFailed during this command:TODDR/XML-Parser-2.41.tar.gz : make NOBJOERN/XML-SAX-Expat-0.50.tar.gz : make_test NO one dependency not OK (XML::Parser); additionally test harness failedGRANTM/XML-Simple-2.20.tar.gz : make_test NO one dependency not OK (XML::SAX::Expat)DMAKI/Crypt-DH-GMP-0.00010.tar.gz : writemakefile NO -- No 'Makefile' createdWROG/Net-OpenID-Common-1.17.tar.gz : make_test NO 2 dependencies missing (Crypt::DH::GMP,XML::Simple); additionally test harness failedWROG/Net-OpenID-Consumer-1.14.tar.gz : make_test NO one dependency not OK (Net::OpenID::Common); additionally test harness failed
ログを追ってみると、結局、依存関係にある Crypt::DH::GMP モジュールと、XML::Parser モジュールのインストールが失敗しているため、Net::OpenID::Common モジュールのインストールが出来ず、make test の時に、
t/00-use-indirectmessage.t .. Can't locate Crypt/DH/GMP.pm in @INC (@INC contains: /root/.cpan/build/Net-OpenID-Common-1.17-U3lS04/blib/lib /root/.cpan/build/Net-OpenID-Common-1.17-U3lS04/blib/arch /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /root/.cpan/build/Net-OpenID-Common-1.17-U3lS04/blib/lib/Net/OpenID/Common.pm line 51.
というようなエラーを出していることがわかった。
それぞれのモジュールの Makefile.PL を手動で実行してみると、
- Crypt::DH::GMP モジュールは GMP(多倍長計算を高速に行うためのライブラリ)が存在しないため。
- XML::Parser モジュールは、Expat(ストリーム型の XML parser ライブラリ)が存在しないため。
ということがわかったので、yum で開発版 RPM パッケージをインストール。
yum -y install gmp-develyum -y install expat-devel
これで、Net::OpenID::Consumer モジュールのインストールも無事終了。
さて、プログラム書いてみよう。