minijsanがうまく動かんので無理やりやってみた。

JSANが入ってなかったら入れる。

% cpan JSAN

ミラーを作成する。

% jsan index && perl -MDBI -MFile::Path -MLWP::Simple -e '$h=DBI->connect(qq{dbi:SQLite:$ENV{HOME}/.jsan.index.sqlite});foreach $dist (@{$h->selectall_arrayref(q{select source,latest from release})}) {my($latest,$local,$remote)=($dist->[1],"/home/JSAN$dist->[0]","http://openjsan.org$dist->[0]");if($latest&&!-f $local){mkpath([$local=~m{(.*?)[^/]+$}]);mirror($remote, $local)}elsif(!$latest&&-f $local){unlink $local}}'

※読みにくい・・・(;´Д`)ウウッ… 最初はワンライナーのつもりだったけど、ちょっとでかくなってしまったので後で書き直します。
※/home/JSANの部分は好きな場所に読み替えて。



これでローカルからインスコできるようになります。

% jsan --prefix=/usr/lib/js --mirror=file:///home/JSAN

jsan> install Test.Simple

/dist/t/th/theory/Test.Simple-0.21.tar.gz -> /tmp/HC1hsl1n7p/Test.Simple-0.21.tar.gz
Unpacking Test.Simple-0.21.tar.gz
Installing libraries to /usr/lib/js

LWP::Simple#getで取ってくるようになっているので、/home/JSAN ではなく file:///home/JSAN のように指定します。(ここちょっとハマッタ)