今日のCPANモジュール(跡地)

宣伝と注意書き

このサイトが元になったCPANモジュールガイドという本を書きました。

本書ではCPAN::Miniは見送りました。

CPAN::Miniを扱うのであれば社内モジュール(いわゆるdarkpan)のミラーサイトを作成する方法も取り上げるべきだと思ったのですが、それよりは具体的な用途別のモジュールを紹介することにページを割きました。またcpanmに自作モジュールのインストール機能があるので、それについては説明をしています。

2007-02-16

use CPAN::Mini;

これまで、軽めのモジュールを何個か取り上げてきましたが、「なんだこんなもんか」とナメられても困るので、次回あたりからそろそろ気合を入れ大型モジュールを取り上げようかと思います。

それに先立って、CPANモジュールを全部ローカルに落としておくといいです。

大型モジュールは依存モジュールも相当ありますが、全部ローカルにあればインストールが当然超ー速いです。今回はそれをするためのモジュールの話です。

http://www.cpan.org/ の右上に現在の CPAN モジュールの総数、サイズが出ています。1995年から10年以上にわたって蓄積され続けている CPAN モジュールですが、現時点で 10,000 強のモジュール、総容量 3.5GB 程度あるらしいです。ただし、各モジュールの最新版だけ集めると、実は660MB程度です。まだ CD 1枚に入るんです。

CPAN::Mini というモジュールがその最新版全部の一括ダウンロード・更新管理をしてくれます。まずは CPAN::Mini をインストールしてください。CPAN::Mini を入れると、(昨日の corelist のように) minicpan というコマンドがいっしょに入ります。

こうやって使います。

> minicpan -r http://ftp.cpan.jp/ -l ~/minicpan

これで、リモートの http://ftp.cpan.jp/ から、ローカルのホームディレクトリに minicpan というディレクトリを作り、そこに一式ダウンロードを開始します。リモートサイトはCPANミラーの他のサイトでもOKです。ftp.cpan.jp は落ちてることが多い気がします。

ネットワーク状況にもよりますが、初回だけは30分?1時間くらいかかると思います。2回目以降は、新規追加・更新があったモジュールだけ入りますので、すぐ終わります。

完成したら、cron などでこのコマンドが1日1回とか動くようにしておくとよいです。-q をつけるとエラー以外は出力されないのでそうするとよいでしょう。

0 3 * * * minicpan -q -r http://ftp.cpan.jp/ -l ~/minicpan

次に、この ~/minicpan からインストールするように cpan 側を設定します。~/minicpan が /home/tomi/minicpan な場合は、

$ su
# cpan
cpan> o conf prerequisites_policy follow
cpan> o conf urllist unshift file:///home/tomi/minicpan
cpan> o conf
cpan> o conf commit
cpan> q

こんなかんじで、ローカルの ~/minicpan を優先できます。

o conf prerequisites_policy follow は、依存モジュールがあった時の 「インストールしますか? [Y/n]」 みたいなとき、自動で Y を選ぶ、というオプションです。