とある Linux の環境に、Perl 5.10.1 が入っている。ここにある Perl プログラムを入れようとして困った。cpan シェルを使って、Log::Dispatch と Log::Dispatch::FileRotate を入れようとしたら、エラーが起きてインストールできなかったからだ。
よく知らないんだけど、今回のプログラムではこの 2 つのモジュールを Log::Log4perl と組み合わせて使っているらしい。
で、Perl 5.10.1 に付属している CPAN モジュールはバージョン 1.x (正確なバージョン番号は忘れた) なんだけど、Log::Dispatch の依存モジュールである Validate::Params とか Test::Requires とかのモジュールは、CPAN 2.0 以降じゃないとインストールできないっぽい。あと、Module::Build というモジュールも最新が必要そうな気配だった。
結局こんな感じにしたらインストールできた。
$ sudo cpan cpan> install CPAN cpan> install Module::Build cpan> quit $ sudo cpan cpan> install Log::Dispatch cpan> install Log::Dispatch::FileRotate cpan> quit $
install は、新規にモジュールを導入するだけじゃなくて、既存のモジュールがあるけど最新版を入れたいという時にも使えるらしい。
途中で一旦 quit で抜けているのは、cpan シェルが最新の CPAN モジュールを読むようにするため。install の後に reload CPAN ってするとその場で新しい方を読み直してくれるらしいんだけど、ググってたら reload じゃダメだった的な記事を見かけたので、念のために quit してみた。
なお、install Log::Dispatch::FileRotate を実行すると、Log::Log4perl も依存ライブラリとして一緒にインストールしてくれるようなので、この後さらに install Log::Log4perl をする必要はないようだ。
ちなみに、Perl 自体をバージョンアップしてよい場合は、CPAN や Module::Build の新しいやつが、最初から標準モジュールとして付属するようなので、その方が早いかもしれない。
「らしい」「ようだ」「かもしれない」と語尾があやふやなのは、正直よくわかっていないからです。えへへ。