MacにperlbrewでPerl環境を作ってみた

実はperlbrewも入れてあったので、昨日に引き続きperlbrewを使ってPerl環境を整えてみた、を書いておく。
PerlSnow Leopardには最初から入ってるんだけど、5.10なので新しいの使いたいよねーってことで。
タイトルには「Macで〜」って入ってるけど、perlbrew自体はUNIX系の環境で使えます。


perlbrewっていうのは、複数のPerlバージョンを簡単にインストールしたり切り替えたりできるようにするツールで、RubyでいえばRVM、Pythonでいえばpythonbrewみたいなもん。
これを使えばOS標準の環境も汚さないし、5.10系、5.12系、5.14系とかプロジェクトで使用中のバージョンと最新版とか色々な複数の環境を簡単に共存させて使い分けることができる。ステキ!


perlbrewを使うとこんな感じでサクサク環境を使い分けることができるようになる。

perlbrew install perl-5.12.2  ←perl-5.12.2をインストール
perlbrew install perl-5.14.1  ←perl-5.14.1をインストール

perlbrew switch perl5.12.2    ←perl-5.12.2に切り替え
perlbrew switch perl5.14.1    ←perl-5.14.1に切り替え

perlbrewのインストール

perlbrewのインストール方法は公式サイトに書いてあるコマンドを叩けば簡単に入る。


http://www.perlbrew.pl/

curl -L http://xrl.us/perlbrewinstall | bash

流れとしてはこんな感じ。

  1. インストールスクリプトを落としてシェルで実行
  2. $HOME/perl5/perlbrew/etc/bashrcを.bash_profileとか.bashrcで読み込むようにする

RVMとかと同じだね。
これで$HOME/perl5/perlbrewにperlbrewの環境ができあがる。

perlbrewに関するコマンド

perlbrewで入れることのできるバージョン一覧

perlbrew availables


perlbrewのアップデート

perlbrew self-upgrade

これでperlbrewが最新になる。

Perlのインストール

Perlのインストール

perlbrew install perl-5.14.1

これでperl-5.14.1がインストールされる。


別名をつけてインストール

perlbrew install perl-5.14.1 as myperl

これでperl-5.14.1がmyperlという名前でインストールされる。
perlbrew aliasで入れたあとに別名をつけることもできる。


コンパイルオプションを指定する

perlbrew install perl-5.14.1 -D=useithreads

こんな感じで-D、-U、-Aで渡してあげる


アンインストール

perlbrew uninstall perl-5.14.1

Perlを切り替える

入ってるPerl一覧

perlbrew list

これでインストールされているperlの一覧が表示される。


Perlを切り替える

perlbrew switch perl-5.14.1

これで5.14.1を使うためのPATHとかその他の環境変数が切り替わったので、今すぐperl-5.14.1が使える状態になる。
RVMとは逆で永続的に切り替わった状態になる。


現在のシェルだけ切り替える

perlbrew use perl-5.14.1

切り替え状態はこのシェルだけ。


OS標準のPerlに戻す

perlbrew off

これでperlbrewで入れたやつじゃない環境に戻る。

複数のPerlでまとめて実行

perlbrewにはインストールしてあるPerlでまとめて実行する機能がある。
これを利用すると書いたプログラムが他のバージョンでもちゃんと動くか一発でテストできる。


まとめて実行

perlbrew exec perl hello.pl

perlbrewでインストールした全Perlで実行される。

cpanmも入れる

最近はperlbrewがcpanmも入れてくれるらしい。
これで入れるとperlbrewのコマンド類と同じところに入るので、Perlをインストールするたびに入れる必要が無くなって楽になるとか。

perlbrew install-cpanm


普通に各環境に入れる場合はperlbrew switchしてからこんな感じかな。

curl -L http://cpanmin.us | perl - --self-upgrade

cpanmとか

perlbrewあんま関係ないけど、ついでにやるだろうってことで。


cpanmのアップデート

cpanm --self-upgrade


App::cpanoutdatedを入れる

cpanm App::cpanoutdated


インストール済みモジュールの最新化

cpan-outdated | cpanm