Blog

OrePAN - yet another DarkPAN manager

https://github.com/tokuhirom/OrePAN

This is yet another DarkPAN manager. It is highly depended for cpanm.
I don't think about relationship for CPAN.pm. It only works with cpanm.

Just type

% orepan.pl --destination=/path/to/repository Foo-0.01.tar.gz

Then Foo-0.01.tar.gz register to the repo, and it add to the 02packages.details.txt.gz.

And... You can install Foo from repo!

% cpanm --mirror-only --mirror=file:///path/to/repository Foo

It will detect dependencies by META.yml automatically... yes. it's cool.

CPAN for intranet 的なのを DarkPAN とよぶらしいのですが、それの管理用ツールとして CPAN::Mini::Inject というものがあるわけですが、これがなんでかうごかないし、もっとシンプルなツールでいいし、これなおすぐらいなら自分でかいたほうがはやいわー、とおもってかいてみたらわりとすぐにできたので公開した。

CPAN::Mini::Inject とちがって、package 名の解析とかもちゃんとやってるので、package 名指定してのインストールも可能。

できあがったリポジトリをローカルでつかうなら、そのまま file:// scheme でみればいいし、そうじゃなければ、plack か apache か適当な httpd で公開すればよろしい。手元にサーバーがなければ、FTP で isweb とかにアップしてもいい。

これでつくったディレクトリを、httpd で公開すればそのまま cpanm でインストールできるようになるので、CPAN にあげるには微妙なライブラリとかを、これで公開したりとかはアリじゃないかとおもっている。あとなんかこう Edge::* とかみたいな社内用のライブラリとかをおく場所としてつかうとか、ね。一般性がひくくて CPAN におくのは気がひけるけど、*今は*便利なライブラリとか、そういうのとかあるじゃん。という。

無論、reusable なものについては CPAN にアップロードしたほうがいいということはいうまでもありません。
ただ、CPAN に変なものあげると怒られるし、CPANは幼稚園児の砂場じゃないので、低レベルなものをアップロードするのはどうなの、という話もあります。

github の file uploader に upload するぐらいならこういうので管理したらいいんじゃないの?とおもいます。(たとえば Ark などはこういう方法をとっていますね)

もう一度かいておくけど、CPAN にuploadすれば、検索とかにもひっかかるし、testers にテストしてもらえるしで、いろいろメリットあるんで、普通に有用なライブラリは CPAN にアップすること!