CPANでperlモジュールのインストールにハマった時の解決方法

http://pkgs.org/
というサイトが非常に有用に働くことが何度かあった。

例えば、Params::Validateがインストールできなかった場合、
もちろん、まずはエラーメッセージが無いかを調べる。

CPANであっても依存モジュールを自動でインストールしようとしてくれない場合とかもある。
その場合は、

Can't located モジュール名

のような表記がある。

それでも解決しない場合のひとつの有効な方法として、冒頭のサイトは有効そうな気がする。

モジュール名を検索する。
検索の仕方はコツが要る。
例えば、「Params::Validate」の場合、そのまま検索フォームに入力してもヒットしない。
「Params::Validate → params-validate」のように書きなおすとヒットする。

検索結果から、自分の環境(OSの種類や64bitとか)に合うものを選択する。
すると、いろんな情報がでてくる。
http://pkgs.org/centos-5-rhel-5/repoforge-x86_64/perl-Params-Validate-0.95-1.el5.rf.x86_64.rpm.html

で、このページから、「Require」という項目が重要で、ここに隠された依存ライブラリとか依存モジュールとかあったりする。

Requires
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
perl(Attribute::Handlers)
perl(Scalar::Util) >= 1.10
perl(Test::More)
rpmlib(CompressedFileNames)
rpmlib(PayloadFilesHavePrefix)
rpmlib(VersionedDependencies)
rpmlib(VersionedDependencies)
rtld(GNU_HASH)

今回、この中から適当に、

perl(Attribute::Handlers)
perl(Scalar::Util) >= 1.10
perl(Test::More)

をインストールすると、見事、Params::Validateをインストールすることができた。