xaicron (2013/02/27)
社内むけモジュールのかんり
CPAN に上がってないモジュールって長いので以下「ノラ」とします。
ノラA
を使ってるんだけど、ある日朝目覚めると
ノラA
が更新されて ノラB
に依存しました。
ノラB
は ノラC
に依存しています。
ノラC
入れるノラB
入れるノラA
入れなおすノラC
の在り処ノラB
の在り処いちいち伝えるの('A`)マンドクセ
cpanfile
に git の url とか書いたらよしなに入れてほしいcarton bundle
で tarball とかよしなに入れてほしい実は local にインストールするだけだったら可能
% cat cpanfile requires 'git@github.com:tokuhirom/Furl.git'; % carton install ...
しかし
.meta
がつくられないcarton.lock
は .meta
の情報から生成しているcarton.lock
から欠ける-> cpanm とかの改修が必要なのでいろいろ考えるべき
上記のようなやりかただと git から直接入れちゃってるし tarball がない!!
-> mirror 作って出直してこいボケカス
/(^o^)\
というわけで ZenPAN です
適当に作ったのであれげだよ!
cpanfile
を元に依存モジュールのインストール--savedists
もするcpanfile
に細工して git からインストールする (くそ)orepan.pl
+ orepan-index.pl
carton install
<- new!
zenapn
のなかで動いてるとなんか ZENPAN_MODE
っていう環境変数がセットされるのでよしなにする
% cat cpanfile requires 'MyModule' => do { $ENV{ZENPAN_MODE} ? +{ via => 'git@github.com/xaicron/MyModule.git', author => 'XAICRON', # default DUMMY } : '0.01'; }; ...
こんなかんじにすると、環境変数なければ以下のように解釈される
requires 'MyModule' => '0.01';
まじきもいね!
% cpanm git@github.com:xaicron/p5-ZenPAN.git
cpanfile
を書くadd
コマンド使う% zenpan add -p tmp
そしたら勝手に tmp に下に mirror ができた!ヤッター!!
mirror に必要なモジュール全部あるので、
そっから carton install
します。
コマンドは以下
% zenpan install -p tmp
これで内部的に carton install してくれて、全部 install できた!
# TODO carton bunlde だけど、
# cp -R tmp/authors local/cache
すれば終わりそう
ruby gem って local に gem ファイルを保存しておいてくれるから、二回目移行のインストールが速い。
cpanm も同じような機能あれば良い気がする!
j or →: next
k or ←: prev
h or ↑: list
l or ↓: return
o or ↵: open
? or /: toggle this help