Shipwrightちょっとだけ使ってみたよ
参考:Shipwright - dann@catalyst - Catalystグループ
Shipwright-1.01使ってみたよ。CPANモジュール群をSubversionリポジトリで管理できるよ。
どっかの誰かが『CPANモジュール群のバージョンを各マシンで合わせるためにrpmに変換して云々』ってのをやってたと思うけど、Shipwrightの用途は多分そんな感じです。
Subversionリポジトリにコミットすることになるので、野良パッチのバージョン管理も出来るかもね。
インストール
普通にCPANから。
# cpan Shipwright
Shipwrightはsvnが必要です。
svkにも対応していてsvkが無い環境だとインストール時にエラーになるけど、運用上svkを使わないんだったらcpan -f Shipwrightで問題無いよ。
初期化
$ shipwright create -r svn://MyRepository/Shipwright
これでsvn://MyRepository/Shipwright 以下に色々コミットされるよ。
既にsvn://MyRepository/Shipwright が存在してたら、中身が空っぽにされちゃうから注意ね。
svn://MyRepository/Shipwright/shipwright/{map,source}.yml が無かったら怒られるよ。空のファイルをコミットしておけばOK
$ svn co svn://MyRepository/Shipwright/shipwright $ cd shipwright $ touch {map,source}.yml $ svn add {map,source}.yml $ svn ci -m "added {map,source}.yml" {map,source}.yml
ディストリビューションの追加
$ shipwright import -r svn://MyRepository/Shipwright YAML
svn://MyRepository/Shipwright/dist にYAMLが丸ごとコミットされる感じになるから、CPAN Mirror(Shipwright用に展開済み)っていうイメージになるよ。
まだ使ったこと無いけど、CPANに上がってない奴(source tarball)も扱えるみたいだから、CodeRepos.orgのディストリビューションとかを管理するときにいいかもね。
Shipwright distのインストール
# shipwright build -r svn://MyRepository/Shipwright
これだけで、Shipwrightで管理されてるディストリビューションが全部インストールされるよ!インストール先はデフォルトで「/tmp/ランダム値」になってるから、--install-baseで指定しよう。
$ shipwright build -r svn://MyRepository/Shipwright --install-base /usr/local --skip-test
$ svn co svn://MyRepository/Shipwright Shipwright $ cd Shipwright # ./bin/shipwright-builderでいいらしいんだけど、
$ ./bin/shipwright-builder --install-base /usr/local --skip-test
でOKでした。