イマドキの(?)Perlの環境構築
そういえば、環境構築の話をまだ書いていなかったので、メモ残しておきます。
perlbrewとcpanmで環境構築
歴史的な話などはよく分かりませんが、perlbrewとcpanmというのが割りとホットなツールのようです。
perlbrew
複数のPerlを管理できるツールです。RubyでいうところのRVMの位置づけのツールだと思います。
ということで、複数バージョンの環境を用意する必要が有る場合や、プリインストール環境を汚したくない場合は、まずこれを入れるのが良さそうです。
インストールは以下の様な感じでしょうか*1。
$ curl -L http://install.perlbrew.pl | bash $ echo 'source $HOME/perl5/perlbrew/etc/bashrc' >> ~/.bash_profile $ source ~/.bash_profile
インストールできるバージョンを確認し、5.16をインストールしてみます。
$ perlbrew available perl-5.19.3 perl-5.18.1 perl-5.16.3 perl-5.14.4 perl-5.12.5 perl-5.10.1 perl-5.8.9 perl-5.6.2 perl5.005_04 perl5.004_05 perl5.003_07 $ perlbrew install perl-5.16.3 ...(長い) $ perlbrew switch perl-5.16.3 $ perl -v This is perl 5, version 16, subversion 3 (v5.16.3) built for darwin-2level Copyright 1987-2012, Larry Wall ...
"~/perl5"以下に全部環境が構築されるので、安心ですね。
cpanm
PerlといえばCPAN、というのはPerl使ったこと無い自分でも知っていましたが、それのフロントエンドのcpanの改良版のcpanmというのを使うのが今風らしいです。
perlbrew使っている場合は、以下のワンライナーでOKみたいです。使ってない場合は、sudoが必要かもしれません。
$ curl -L http://cpanmin.us | perl - App::cpanminus $ which cpanm /Users/USERNAME/perl5/perlbrew/perls/perl-5.16.3/bin/cpanm
問題無さそうですね。
ただ、cpanmもといcpan自体が古いツールのせいか、コマンドのインターフェースがあまりモダンじゃないので、使う前に色々使い方をチェックしておいたほうがよさそうです。例えば、
$ cpanm install DBD::mysql
とかすると、引数がダイレクトでモジュール名を表す仕様なので、"install"なるモジュールをインストールしようとします(汗)。
他にも、インストール済みのモジュールリストの出力をするには、
$ find `perl -e 'print "@INC"'` -name '*.pm' -print とか $ perl -MExtUtils::Installed -le 'print join "\n" => sort ExtUtils::Installed->new->modules;' とか $ perl -MExtUtils::Installed -e '$inst=ExtUtils::Installed->new();print $_." ".$inst->version($_)."\n" for $inst->modules'
とか、つべこべ言わずperlプログラム書けや、ということらしいです。$ cpan list
とかで出来るようにしてくれよ、と思うのだけれど、うーん…。