Shipwright 試してみた
Shipwright のインストール自体は cpan コマンドでいつも通り。
$ sudo cpan Shipwright
すると shipwright コマンドがインストールされる。shipwright コマンドは svn とかと同じように shipwright
んで、CPAN モジュールを管理したい svn リポジトリを指定して create する。
$ shipwright create -r svn:file:///Users/vkgtaro/Desktop/experimental/repos/dists created with success
リポジトリは通常の svn コマンドに使われる URI だけじゃなくスキームの前にその種類を指定するのが必要。今回は同一サーバ上に作った適当なリポジトリなので、svn:file:/// で始まってる。
多分、http とかだと svn:http:// とかになる。詳細は shipwright help create すると読めます。
んで、管理しておきたいモジュールは import。
$ shipwright import -r svn:file:///Users/vkgtaro/Desktop/experimental/repos/dists cpan:Encode CPAN related output will be at /var/folders/-H/-H2Vo1JoFMC3xmx0zUvCrk+++TI/-Tmp-/shipwright_cpan.log Fetching with LWP: http://ftp.riken.jp/lang/CPAN/authors/id/D/DA/DANKOGAI/Encode-2.31.tar.gz Fetching with LWP: http://ftp.riken.jp/lang/CPAN/authors/id/M/MS/MSCHWERN/ExtUtils-MakeMaker-6.48.tar.gz importing cpan-Encode: detected ExtUtils::MakeMaker build system importing cpan-ExtUtils-MakeMaker: detected ExtUtils::MakeMaker build system imported with success
管理しておきたいモジュールもリポジトリと同じように prefix が付けられる。cpan にあるモジュールなら、cpan:Encode とか。
tar.gz で置いておけば、file, http, ftp 越しも可能っぽい。svn, svk の指定やディレクトリの指定も可能っぽい。ので、CPAN に上がっていないモジュールとかも一緒に管理できるね。
詳細は shipwright help import で。
管理してるモジュールをインストールするには build コマンドで。
$ sudo shipwright build -r svn:file:///Users/vkgtaro/Desktop/experimental/repos/dists
デフォルトは /tmp 以下に入る。実際に使うときは --install-base でインストール先を指定して使うといいっぽい。
はてなの人が依存関係を解決しつつ rpm 化するスクリプト公開してるから、rpm 使えるディストリはそっちでやった方が良いかも。
CPANモジュールをスクリプト一発で依存解決しつつrpm化する - とあるはてな社員の日記
shipwright import して管理モジュール増やす手間と rpm 作る手間はそんなに変わらなそうな気もするし、shipwright は build 時に make && make test && make install が走るからインストールに時間がかかると思う。
とかなんとか書いてたら、dann さんもなんか作ってますなw
後は気になりどころは local::lib とかかなぁ。