2013年03月13日

perlbrew best practice まとめようと思ったら perlbrew lib なるコマンド見つけたので使ってみた。
なんか、一度ビルドした perl binary と元の site_perl を使いまわして、新たに lib path だけ変えて複数の環境を手軽に切り替える事が出来るってやつみたい。

例えば perl-5.17 の環境に @suneo って lib を作ると、 perl-5.17 の通常のライブラリパスに追加されて @suneo のライブラリパスが利用できる。そして cpanm で install するときは @suneo を汚さない。という branch っぽい作業するときに便利そう。

作る

$ perlbrew lib create suneo
ってコマンドで suneo っていうのができます。 perlbrew list してみると
 $ perlbrew list
  perl-5.14.1
  perl-5.15.2
  perl-5.16.0
  perl-5.16.1
* perl-5.17 (5.17.2)
  perl-5.17@suneo
  perl-5.17.2
  perl-5.17.5
みたいになっります。
$ perlbrew lib create perl-5.17@suneo
って感じでフルで指定もできますね。

使う

普通に

$ perlbrew use perl-5.17@suneo
ってするだけです。

lib path を見るとこんな感じ。

$ perl -E 'say join "\n", @INC'
/Users/onasui/.perlbrew/libs/perl-5.17@suneo/lib/perl5/darwin-2level
/Users/onasui/.perlbrew/libs/perl-5.17@suneo/lib/perl5
/Users/onasui/perl5/perlbrew/perls/perl-5.17/lib/site_perl/5.17.2/darwin-2level
/Users/onasui/perl5/perlbrew/perls/perl-5.17/lib/site_perl/5.17.2
/Users/onasui/perl5/perlbrew/perls/perl-5.17/lib/5.17.2/darwin-2level
/Users/onasui/perl5/perlbrew/perls/perl-5.17/lib/5.17.2
.

cpanm

普通にいれれます。

$ cpanm -v Acme::Acotie
...
OK
Successfully installed Acme-Acotie-0.02
Installing /Users/onasui/.perlbrew/libs/perl-5.17@suneo/lib/perl5/darwin-2level/.meta/Acme-Acotie-0.02/install.json
Installing /Users/onasui/.perlbrew/libs/perl-5.17@suneo/lib/perl5/darwin-2level/.meta/Acme-Acotie-0.02/MYMETA.json
3 distributions installed
という感じで普段と違うところに入ります。

へんなとこ

最新の App::perlbrew/0.59 だと use perl-5.17@suneo したら use perl-5.17 できなくなっちゃって、一度ターミナル落とさないと use できなくなって頭がふっとーしそーだおぉ。

まとめ

最近は carton 使ってるから、俺は使うかどうかわからない。

Posted by Yappo at 2013年03月13日 14:39 | TrackBack | Perl
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。