CPANのオフラインモード

内から外が見えないサーバがけっこうあって、そういうサーバにCPANモジュールを入れるときはひとつひとつ、configure, make, make installしてたけど、CDBIとか、ましてやSVKを入れるときにいい加減ウンザリしたので、調べてみたら、nDiki: 野良パッケージと依存 Perl モジュールのインストールセット をCPAN::Site で (2006-02-11)にバッチリ書いてあるし、これもCPANのドキュメント嫁って話でした。

以下、やり方。

モジュール取得

外が見えているサーバでCPANシェルを起動させて、欲しいモジュールを取得。このとき、

build_cache

がデフォルトの10だとちょっと不安だったので、100とか指定しておいた。
あと、

get

だと依存関係にあるモジュールは入れてくれないっぽい。なので、

make

とかで芋づるで取得。

モジュールを移す

取得できたら、

~/.cpan/sources

以下をまとめて、インストールしたいサーバに移す。

CPANシェルのオフライン・モードでインストール

Configは、

MIRRORED.BY

とかを取ってくるところで外に繋ごうとするけど、繋げないのはわかっているし、接続をタイムアウトまで待つのが面倒なので、manualはnoにして、設定をとばす。
設定が終わったら、

o conf urllist push file:///path/to/cpan_cache/sources

と実行して、ローカルのディレクトリを参照するようにする。
あとは普通に

cpan> install hoge

で入れられる。