perlbrewで全ユーザのperl環境を管理したい

ツイッターでつぶやいたらアドバイス頂いたので試してみた。
この方法でいいのかどうかは不安ですが一応手順をメモ。


要は、サーバ全体でのperlデフォルト環境をみんな一緒にしたかったということ。
/usr/bin/perl を直接変えちゃうのはいろいろ問題ありそうなので
/usr/local/bin/perl をperlbrewで管理するperlにしちゃえば良さそう。

perlbrewの設定

インストールは適当に App::perlbrew でOK。
ただ、全ユーザで使いたいのでみんなが見えるところに置かないといけない。
今回は /usr/local/perlbrew に置くことにする。
で、 perlbrew のルートを設定するわけだが
PERLBREW_ROOT という環境変数を使う。
以下はその設定の流れ。

cpan App::perlbrew
echo "export PERLBREW_ROOT=/usr/local/perlbrew" >> ~/.bash_profile
source ~/.bash_profile
perlbrew init
echo "source /usr/local/perlbrew/etc/bashrc" >> ~/.bash_profile
source ~/.bash_profile
perlbrew install perl-5.12.1
perlbrew switch perl-5.12.1

シンボリックリンクを張る

インストールされたのはperlbrewの下なので、
/usr/local/bin/perl にリンク張る。

ln -s /usr/local/perlbrew/bin/perl /usr/local/bin/perl 


これで終了。
アップグレードする時もperlbrew使えば楽ちん!

余談

新しいperlを入れた時にcpanmとperlbrewをインストールしなおさないといけない、
というのは知ってたけど、
普通に以下のコマンドでインストールしなおそうとしてたら
cpanmで新しいロケーションにモジュールインストールされなくて
????ってなった。

cpanm App::cpanminus App::perlbrew


…まあよく考えたら、上記コマンドだと
cpanm自体が古い方のcpanmを使っているので
そりゃ新しい方にはインストールされないわな!


なのでインストールしなおすときは
wgetで取ってきてから入れなおしましょう。

wget http://bit.ly/cpanm
perl cpanm App::cpanminus App::perlbrew

(※参考)
http://d.hatena.ne.jp/sfujiwara/20100517/1274081705