自分の中でこんがらがってたのでまとめました。
cpanmとcartonの違いについて
どちらもモジュールをインストールするものです。
carton installの挙動は
cpanm --installdeps -L local/ .
とだいたい同じ。
carton execの挙動は
perl -Mlib::core::only -Mlib=local/lib/perl5/
とだいたい同じ。
cartonはその上で提供していることは、
carton.lock というファイルにモジュールのバージョンとか記録しててくれて、いいかんじにバージョンを固定できる。
- cpanm ってなんですか? carton ってなんですか?利点はなんですか? - tokuhirom's blog.
- Web アプリケーションのデプロイについての考察 - Perl Advent Calendar Japan 2012 Casual Track
- cpanfile
疑問点。
cpanfileというのが出てきて、cpanmでもモジュールのバージョンを固定できるようになった。
cartonを使ったほうが良い場合というのはどういう状況なのだろう?
ExtUtils::MakeMaker、Module::Build、Module::Install
以下の記事に、知りたいことがドストライクで書かれていた。とても分かりやすい。
おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史
他の参照ページ。
- Do not ship modules with Module::Install 1.04 - Tatsuhiko Miyagawa's blog
- Module::Buildでビルドを自動化する: ash
- Module::Buildとcpanfileを組み合わせる案 - blog.nomadscafe.jp
- Module::Build と Module::Install - tokuhirom's blog.
- 僕はもうちょっと Module::Install を使った方が良いのではないかと考えている、というお話 - tsucchi の日記 2nd season
- Module::Build + cpanfile - パルカワ2
- Perlのmakeフェーズの挙動