CentOS 5.3にアップデート後、cpanインストールが失敗する。
CentOS 5.3がリリースされたということで、何気なく yum update したところ、cpanインストールが失敗するようになった。
# cpan -i JSON::XS ...(色々出力される) LWP failed with code[500] message[Errno architecture (i386-linux-thread-multi-2.6.18-53.1.14.el5pae) does not match executable architecture (i386-linux-thread-multi-2.6.18-53.el5) at /usr/lib/perl5/site_perl/5.8.8/Errno.pm line 11.
エラーメッセージでググって出てきた http://casey.jp/article.php?story=20090410191319161 や http://d.hatena.ne.jp/sotarok/20090409/1239300821 を参考にして Errno.pmを退避。
# mv /usr/lib/perl5/site_perl/5.8.8/Errno.pm /usr/lib/perl5/site_perl/5.8.8/Errno.pm.bak
cpanインストールの出力を見た感じ、さっきよりは進むようになったけど、今度はテストで失敗する。
# cpan -i JSON::XS ...(色々出力される) t/00_load...............ok 1/1Can't use an undefined value as an ARRAY reference at /usr/lib/perl5/5.8.8/Test/Harness.pm line 373. make: *** [test_dynamic] エラー 255 /usr/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force
上記エラーメッセージでググっても解決方法が分からなかったが、とりあえずエラーを吐いている Test/Harness.pmというのをアップデートしてみたところ、Test/Harness.pm自体のアップデートは成功した。
# cpan -i Test::Harness
で、ようやくインストールできるようになった。
# cpan -i JSON::XS ...(色々出力される) t/00_load.t ............. ok t/01_utf8.t ............. ok t/02_error.t ............ ok t/03_types.t ............ ok t/04_dwiw_encode.t ...... ok t/05_dwiw_decode.t ...... ok t/06_pc_pretty.t ........ ok t/07_pc_esc.t ........... ok t/08_pc_base.t .......... ok t/09_pc_extra_number.t .. ok t/10_pc_keysort.t ....... ok t/11_pc_expo.t .......... ok t/12_blessed.t .......... ok t/13_limit.t ............ ok t/14_latin1.t ........... ok t/15_prefix.t ........... ok t/16_tied.t ............. ok t/17_relaxed.t .......... ok t/18_json_checker.t ..... ok t/19_incr.t ............. ok t/20_faihu.t ............ ok t/99_binary.t ........... ok All tests successful. Files=22, Tests=25550, 39 wallclock secs (22.86 usr 1.40 sys + 13.07 cusr 1.31 csys = 38.64 CPU) Result: PASS /usr/bin/make test -- OK Running make install Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/JSON/XS/XS.so Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/JSON/XS/XS.bs Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/JSON/XS.pm Installing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/JSON/XS/Boolean.pm Installing /usr/share/man/man1/json_xs.1 Installing /usr/share/man/man3/JSON::XS::Boolean.3pm Installing /usr/share/man/man3/JSON::XS.3pm Installing /usr/bin/json_xs Writing /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/JSON/XS/.packlist Appending installation info to /usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod /usr/bin/make install -- OK
ついでにモジュールを読み込めているかテスト
# perl -MJSON::XS -e'print "hoge\n";' hoge