1. perlbrewのインストール
LionではデフォルトでPerlのv5.12.3とかなり新しめのバージョンが入ってるみたいですが、 Rubyのようにrvmでバージョン切り替えたりしたいですね!
そこでPerl界のrvmことPerlbrewを入れます。 公式サイトの忍者とビールのしゅわしゅわアニメーションが良い感じです。 => Perlbrew インストールは簡単で、公式に書いてあるとおり、
curl -L http://xrl.us/perlbrewinstall | bash
とワンライナーを実行すればいいのですが、デフォルトのインストール先が ~/perl5 らしいので、それが嫌ならインストール前に、 環境変数のPERLBREW_ROOTを変更しろとのことです。自分は以下のようにしました。
mbp:~ namai$ export PERLBREW_ROOT=$HOME/.perlbrew mbp:~ namai$ curl -L http://xrl.us/perlbrewinstall | bash mbp:~ namai$ echo 'source ~/.perlbrew/etc/bashrc' >> ~/.bashrc mbp:~ namai$ source ~/.bashrc mbp:~ namai$ perlbrew init
3,4行目はshellでperlbrewコマンドを使うためのPATH追加等やってもらうためのアレで、 最後のは初期化だそうです。他の解説ページやら雑誌では初期化の実行まで解説してますけど、 2行目のインストール時と同じ文章が表示されるだけなので、もしかしたら要らないかもしれないです。 気になる人はgithubでソース読みましょう(丸投げ)。 => lib/App/perlbrew.pm at develop from gugod/App-perlbrew – GitHub
で、インストール出来るPerlのバージョン一覧とインストール方法です。 どうせなので最新バージョン入れましょう。
*追記 はてブコメントより、Perlのバージョンの奇数の物は(5.15,5.13…)は開発版のもので 一般の人は偶数バージョン(5.14,5.12…)を使ったほうが良いそうです。
mbp:~ namai$ perlbrew available perl-5.15.1 perl-5.14.1 perl-5.12.4 perl-5.10.1 perl-5.8.9 perl-5.6.2 perl5.005_04 perl5.004_05 perl5.003_07 mbp:~ namai$ perlbrew install perl-5.15.1
ここでインストールに失敗する人は多分gccとかmake等のコンパイル環境がない人です。 MacならLionからXcode4.1が無料でなのでApp Store開いてさっさと落としましょう。 俺はSnow Leopard時代に600円でXcode4を購入しましたが、別に泣いてないです。泣いてなんかいないんです!
一からコンパイルしてるのでインストールまで割と時間かかります。 暇な人は「tail -f ~/PERLBREW_ROOT/build.log」でログを監視しましょう。 待つこと約10分コンパイル終了。
mbp:~ namai$ perlbrew list perl-5.15.1 * /usr/bin/perl (5.12.3) mbp:~ namai$ perlbrew switch perl-5.15.1 mbp:~ namai$ perlbrew list * perl-5.15.1 /usr/bin/perl (5.12.3)
インストールされてるperl一覧取得も、切り替えも簡単に。 これで最新版入りました!stwichコマンドだと環境変数まで書き換わるらしく、 現在のシェルだけで変更したいときはuseコマンドで変更するそうです。
2. cpanmのインストール
次にPerl界の偉大なライブラリたちを使うためのコマンドcpanを改良したcpanmを導入します。 (cpanとcpanm(cpanminus)の違いはここにまとまってます。) これもperlbrew経由でインストールします。
mbp:~ namai$ perlbrew install-cpanm
ためしにモジュール入れてみます。
mbp:~ namai$ cpanm App::pmuninstall mbp:~ namai$ cpanm App::cpanoutdated
App::pmuninstallはcpanmでインストールしたモジュールを 簡単にアンインストールするためのモジュールだそうで、capn、cpanm自体に そもそもそういう機能がないようなので是非入れましょう。
pm-uninstall モジュール名でアンインストール。
で、App::cpanoutdatedはcpanmでインストールしたモジュールをアップデートするためのモジュール。
mbp:~ namai$ cpan-outdated | cpanmでcpanm経由でモジュールをアップデートすると。
最後に、インストール済みのPerlのモジュールを調べる方法が気になるところですが、 こちらもやはりcpanにはデフォルトでは用意されてない機能な模様。 いろいろ方法があると思いますが、以下のワンライナーを見つけました。
$ cat <code>perldoc -l perllocal</code> | perl -nle '/C<Module> L<([^|]<em>?)|.</em>?>/ and print "$1"' | sort -u既にインストール済みのCPANモジュール一覧を表示するコマンド – Layer8 Reference
これはいちいち手書きで書いてられないので.bashrcにaliasを書きました。
alias pm_list="cat <code>perldoc -l perllocal</code> | ruby -e 'while l = gets; if r = l.match(/C<Module> L<(.<em>?)|.</em>?>/) then puts r.captures[0] end;end' | sort -u"デフォルトだとダブルクォートとか$を使った特殊変数?がシェルスクリプトの解釈と衝突して面倒なので なるべくそれらを使わないようにRubyで書き換えました。(いつかPerlでサラリと書けるといいな…) これでpm_listコマンド一発でインストール済みのモジュールが取得できるようになりました!
まとめ
- perlbrewでPerlのバージョン管理
- モジュールのインストールにはcpanmを使う
- しかしcpanmもRubyのgem程高機能ではないので他のモジュール等で機能を補完するべし
ところ最近、「初めてのPerl」を読みながらPerlを勉強し始めてます。
いわゆるリャマ本という奴ですね。
どの言語も大して変わらんだろう、と思って読んでみるとPerlの文法には
いろいろと気持ち悪い面白い法則があるようなので、
Perl経験者でも読んでみると意外な発見があるかも!?
それと、以前行ってきたイベント(PerlCasual #4 に行ってきました | ましましブログを参照)で、 サインしてもらったPerlモジュールガイドも初心者〜中級者向けに書いてあるそうなのでおすすめです。 実は、まだ読んでない(白目)