タグ

PerlとCartonに関するtrappleのブックマーク (5)

  • 「Cartonの内部」について社内勉強会で発表した - $shibayu36->blog;

    Perlのバージョン管理ツールであるCartonの内部について、社内勉強会で発表したので、その時の資料をそのまま公開する。けっこう雑に作ってしまったので、正確性については保証できないけど、Cartonのソースコードリーディングの際の参考になればと思う。 アジェンダ Cartonとは いろいろトラブル carton installの挙動を理解する Cartonとは Perlのモジュール管理ツール 依存モジュールを特定のバージョンに固定して、インストールしてくれる Cartonとは(深堀) 一番重要なのはcarton install 基的にはcpanmのラッパーとしてcarton installが実現 Module::CPANfileなど、小さいモジュールを組み合わせている いろいろトラブルもある cpanfile.snapshotが環境によって変わる carton install --de

    「Cartonの内部」について社内勉強会で発表した - $shibayu36->blog;
  • Carmel

    I shipped a few trial versions of Carmel to CPAN. Carmel is intended to be a successor of Carton, with a better internal structure and an interesting architecture change. As a starter, here’s how Carton works: use local::lib and cpanm’s -L option to install modules locally to ./local Scan meta/install.json file cpanm created under ./local and create a snapshot file for the next run, if there’s a s

  • Perl - carton exec 省略 - skaji's blog

    Perl のアプリを carton で管理し開発していると、毎回 > carton exec ... と打たないといけないからちょっと面倒。そんなときアプリのディレクトリトップに DIR=$(cd $(dirname ${BASH_SOURCE:-$0}) >/dev/null; pwd) export PATH=$DIR/local/bin:$PATH export PERL5LIB=$DIR/lib:$DIR/local/lib/perl5 を .rc という名前で保存しておいて > source .rc とすればラク。

    Perl - carton exec 省略 - skaji's blog
  • おそらくはそれさえも平凡な日々: cpanfileのrequiresにURLを直接指定するのは好ましくない

    cpanfileでは、requires "git:..."; のように、gitやtarballのURL等を指定すれば cpanm --installdeps . でモジュールがインストールできる「裏ワザ」があることが 結構知られているようです。しかし、これは好ましくありません。そもそも CPAN::Meta::Spec準拠ではありません。 これはあくまでcpanm側が第1引数にgitやtarballのURLなどを指定すればよしなに インストールしてくれるから現状は「偶然」そういう動きになっているだけです。 (cpanm git:...でインストールできるので、requires "git:..."; って書いてあれば 入れてくれてしまうってことです。) あくまでインストールにcpanmを使った場合に動くってだけの限定的な話で、しかも今後は 動かなくなる可能性が高いです。 実際問題、requi

  • 1.3 Cartonによるアプリケーションの実行環境の構築 : Practical Modern Perl (仮)

    注:稿はまだ書きかけです!書きかけです!まだ一般に知らしめようとする前にブクマされました!w 間違いの指摘やコメント等は lestrrat @twitter にください! 1.3 cartonを使ったアプリケーション実行環境の構築 carton はアプリケーションのCPANモジュール等への依存関係の管理を始めとした環境の管理を行ってくれるツールです。cpanm等を使って自分で環境を手動で整えるに比べると、cartonコマンド内でパス等の面倒を見てくれるのでアプリケーションの管理・実行が格段に楽にできるようになります。 もちろんcartonを必ず使う必要があるわけではありません。あくまで一例としてですが、最も原始的な依存モジュールのバージョン固定方法としては、必要な全てのモジュールをバージョン指定して cpanm -L /path/to/myapp/extlib DBI@1.625 cpa

    1.3 Cartonによるアプリケーションの実行環境の構築 : Practical Modern Perl (仮)
  • 1