yokohama pm に行ってきた
昨日行われた yokoyama pm にいってきた。
発表はもちろんすばらしかったが、それよりも ytnobody さんからとても有益な話が聞けたので、 メモっておきたい。
僕は社内でひとりさみしくPerlを書いていて、 GHE に置いているモジュールをどう使うかで悩んでいた。 現状、Carton の dev 版を入れ cpanfile に git url を指定しているが
- update がちょっと面倒
- META.json を用意していないモジュールはインストールできない
- 細かいが
requires MODULE, git => URL
の形でかけない (間に VERSION が必要)
などの問題がある。何より dev 版を使い続けるのに気が引けていた。
それを ytnobody さんに話したら、ytnobody さんのところでは git submodule で依存するモジュールを入れそれに symlink を張って管理しているのだという。
おそらく下記のような感じ。
https://github.com/shoichikaji/MyApp
> amon2-setup.pl MyApp > cd MyApp > mkdir module > git submodule add https://github.com/shoichikaji/Amon2-Plugin-Web-Text.git module/Amon2-Plugin-Web-Text > mkdir -p lib/Amon2/Plugin/Web > cd lib/Amon2/Plugin/Web > ln -s ln -s ../../../../module/Amon2-Plugin-Web-Text/lib/Amon2/Plugin/Web/Text.pm .
すばらしい!特にモジュールのアップデートが簡単だし、META.json がないものも取り込める。 来週からはこの方法で管理していこう。
そういえば tokuhirom さんのブログ に
git submodule で github においてあるモジュールをインストールしようとしてた
なる文言があったが、なるほどこれのことだったらしい。わかっている人には常識なのかもしれない。