Quantcast
Channel: ましましブログ »ワンライナー
Viewing all articles
Browse latest Browse all 2

OS X LionにperlbrewとcpanmをインストールしてPerl環境を整える

$
0
0

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&lt;Module&gt; L&lt;([^&#124;]<em>?)&#124;.</em>?&gt;/ and print &quot;$1&quot;' | sort -u
既にインストール済みのCPANモジュール一覧を表示するコマンド – Layer8 Reference

これはいちいち手書きで書いてられないので.bashrcにaliasを書きました。

alias pm_list=&quot;cat <code>perldoc -l perllocal</code> | ruby -e 'while l = gets; if r = l.match(/C&lt;Module&gt; L&lt;(.<em>?)&#124;.</em>?&gt;/) then puts r.captures[0]  end;end' | sort -u&quot;
デフォルトだとダブルクォートとか$を使った特殊変数?がシェルスクリプトの解釈と衝突して面倒なので なるべくそれらを使わないようにRubyで書き換えました。(いつかPerlでサラリと書けるといいな…) これでpm_listコマンド一発でインストール済みのモジュールが取得できるようになりました!

まとめ

  • perlbrewでPerlのバージョン管理
  • モジュールのインストールにはcpanmを使う
  • しかしcpanmもRubyのgem程高機能ではないので他のモジュール等で機能を補完するべし

ところ最近、「初めてのPerl」を読みながらPerlを勉強し始めてます。 いわゆるリャマ本という奴ですね。 どの言語も大して変わらんだろう、と思って読んでみるとPerlの文法には いろいろと気持ち悪い面白い法則があるようなので、 Perl経験者でも読んでみると意外な発見があるかも!?

それと、以前行ってきたイベント(PerlCasual #4 に行ってきました | ましましブログを参照)で、 サインしてもらったPerlモジュールガイドも初心者〜中級者向けに書いてあるそうなのでおすすめです。 実は、まだ読んでない(白目)


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images