普通に cpanm する方法の問題点

公式サイトでは普通に cpanm でインストールする方法が紹介されている。運が良ければこれで動くだろう。

cpanm Mail::Milter::Authentication

けど、運が悪かったら? undo してやり直したくなったら? (cpanm には --uninstall オプションがあるが、自分で使ったことはない。どの程度信用できるだろうか?)。また、実験サーバーで動いたとして、本番サーバーでも cpanm を実行した時に同じバージョンのモジュールが入るとは限らない。第一、たまたま通信エラーが起きたらどうする?そのためだけにローカルに CPAN サーバーを用意するのは…負担が大きい…

OrePAN を使って、予め CPAN のローカルミラーを作って git 管理する方法があるそうだが… もっと直接的に、 インストール結果ディレクトリ自体を git 管理 する方法が、あるのではないか?

着眼

CPAN モジュールのインストール結果ディレクトリ自体を git 管理すれば、 branch を使って undo も redo も自由自在だ。 git submodule で github から CPAN モジュールを取り込む事も出来るだろう。 sha1 のお陰で改ざん防止にもなるし、システム変更の履歴も残せる。 良いことばかりじゃないか?