それdistroprefsでできるよ

$ perl -MCPAN -e shell
cpan> o conf prerequisites_policy follow
cpan> install xxx::yyy

ってやると依存モジュールを自動でインストールしてくれるっぽいけど、インストール中に

Ah, I see you already have installed libnet before.

Do you want to modify/update your configuration (y|n) ? [no]

こんな風に聞かれることもあるのでやっぱりPCの前にいないとダメか。

YAPCでネタにしたあと説明書くのをサボっていましたが、これは、

  • まずは CPAN 1.90 以降をインストール
  • 続いてCPANシェルを立ち上げるか、CPAN::Configファイルを直接いじって prefs_dir の設定をする(シェル経由の場合はコミットを忘れずに)。
> o conf prefs_dir /where/you/unpacked/prefs_files
  • あとは、通常通りインストール。少なくともdistroprefsの設定があるファイルについては問い合わせ抜きでインストールできます。

ただし、この自動インストールについてはExpectを使って実装されているため、YAPCでも話した通り、残念ながらいまのところWin32の人は恩恵にあずかれません。

また、PODにも書いてありますが、作者が問い合わせてくるというのはいちおうそれなりに意味のあることですので、他人のdistroprefsを安易に信用するのは避けるのが吉。

具体的に言うと、たとえばCPANに同梱されているTTのdistroprefsには

  expect:
    - "Do you want to build the XS Stash module"
    - "n\n"

という節がありますので、そのままだとXSがインストールされず、あとでハマる可能性があります。

distroprefsの仕様については下記参照ということで。

http://search.cpan.org/dist/CPAN/lib/CPAN.pm#Configuration_for_individual_distributions_(Distroprefs)