2013年03月13日

perlbrew には

$ perlbrew upgrade-perl
というのが実装されてるのがあまりにも有名ですが、これは現在使ってる環境の perl を、そのマイナーバージョンの中で一番新しいバージョンにアップグレードしてくれるんです。
perl-5.16.1 を使っていたら perl-5.16.3 に perl-5.14.2 を使っていたら perl-5.14.4 に。という具合ですね。
同じマイナーバージョンの Perl では XS バイナリの互換性とか保証されているので、すでにインストールされているモジュールはそのまま利用できる状態になっています。

だがしかし

$ perlbrew install perl-5.16.2
して作った環境を upgrade-perl すると 5.16.3 が入ってるのに perl-5.16.2 って名前がついたままでキモい!
実際には(c)tokuhirom みたいになってて、どのバージョンかわかるんだけど perl-5.16.2 (5.16.3) とかもっときもい!

ってことで、最初に perlbrew 環境をセットアップするときは

$ perlbrew install perl-5.17.2 --as perl-5.17
みたいな感じでマイナーバージョン止まりの名前に変えておいて、 security release が出たら perlbrew upgrade-perl とかするとスマートに運用出来る事でしょう。

別のバージョンからモジュール持ってくる方法

例えば、ついでに perl-5.16 から perl-5.17 に移行したい時とかは、こうやると 5.16 で入れてたのを引き継げる。

$ perlbrew install perl-5.17
$ perlbrew switch perl-5.17
$ /Users/onapeko/perl5/perlbrew/perls/perl-5.16/bin/perl -MExtUtils::Installed -E 'say($_) for ExtUtils::Installed->new->modules' | cpanm

追記

もっと良い事を教えてもらった。

$ perlbrew use perl-5.16
$ perlbrew list-modules | perlbrew exec --with perl-5.17 cpanm
ってやるのが一番簡単に perl-5.16 のモジュールを 5.17 に入れられる。 help の一番最後に書いてあった!

参考文献: Upgrade in Place with Perlbrew
安定的な Perl アプリケーション運用のための perlbrew 運用テクニック - tokuhirom's blog. blog.64p.org

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









Remember personal info?






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