PerlのCPANが使えくなって困った話


 

最近ではPHPに押されて、以前よりは使用者が減っているかもしれないPerl。昔からWEBプログラミングをする人にとっては、こちらの方が断然やりやすいという熱烈なファンもいるかと思います。

Perlで便利なものといえば、特定の機能がパッケージされたモジュールですね。フルスクラッチでプログラミングをするのは大変なので、誰かが作ってくれた機能モジュールを使うことで大幅に作業が簡略化できます。

CPANは便利。いや便利すぎる

便利なモジュールですが、利用出来るようにするには少し手順が必要です。具体的には各モジュールの依存関係を見ながら、インストールする必要があります。これ、結構面倒。ということで、そのあたり、つまりモジュールの取得から依存関係のチェックからインストールまでが、ほぼコマンド1つで(あとはYES,NO答えるだけで)出来るようにしてくれたのがCPANという、超便利ツールでした。install <必要なモジュール>とコマンドを打てば、インターネットのCPANサーバーから自動取得してインストールしてくれるなんて最高です!

ところが。。使えなくなると困った困った

結構頻繁に接続先のサイトが使えなくなったりして、手動変更しなければならなくなります。まあこれくらいなら我慢できたのですが(使えるところを都度探すのも面倒ですが、依存性解決など素晴らしい機能を使いたいので)、先日とうとうCPAN自体がエラーで起動しなくなってしまいました。CPANコマンドで起動しようとすると、セグメンテーション違反のエラーメッセージ・・・なんか致命的な感じです。

Perl 5.8.8 (perl-5.8.8-43.el5_11)

そういえば、この直前になんとなく(!)、Perlのバージョンアップをしたんでした。elXXの部分が変わるだけでしたが、マサカ・・・googleで検索しても日本語情報ではそれらしきものは見つかりません、英語サイトで探してみると見つけた・・[Solved]の文字。

あ、これはダメなやつだ・・

結論から言うと、どうもこのバージョンのバグのようで、一度こうなるとPerlをダウングレードしてもダメ。Perl関連のディレクトリ毎削除して、再インストールするしかないよ・・って話でした。

ということで久しぶりの手動インストール

依存関係がなければ、特に難しいことはなかったはず・・ということでCPANはあきらめ手動でモジュールインストールすることにしました。以下実際に入れたものとは違いますが、手順を忘れてしまったので参考にさせて頂きました。

参考http://blog.thingslabo.com/archives/000007.html 手動でPerlモジュールをインストール。Jcode.pmを例にとって

インストールの確認は、
# perl -e ‘use Jcode;’

結果CPAN使ってませんが、まあインストール手順も思い出せたし今回はこれでよしとします・・・負け惜しみ。

[追記]どうもセグメンテーションエラーの問題は根深く、モジュールによっては手動インストールすらできなくなりました。ということでやはり根本的なCPANの解決編へ続く。