PerlbrewでPerl環境を管理する

システムのデフォルトがPerl5.10だけど使いたいのはPerl5.16なんだよーってときのメモ。
Perlbrewを使って管理できるようにした。

今回の設定

  • 自宅サーバやVPSといったrootを持っていること前提
  • デフォのPerlを書き換えるのは危険な香りがするので/usr/local/bin/perlをPerlbrew管理下に置く
  • Perlbrewのルートは/usr/local/perlbrewにする
  • 必須ではないけど涙目になりたくないならscreenなりtmuxを入れておくことをすすめる

手順

~/.bash_profileに以下の2行を追加しておく

PERLBREW_ROOT=/usr/local/perlbrew
export PERLBREW_ROOT

perlbrewをインストール

# curl -kL http://install.perlbrew.pl | bash

.bash_profileに指示通り追記

source /usr/local/etc/bashrc

反映

# source .bash_profile

これでperlbrewは動くようになるはず。

# perlbrew available
  perl-5.14.4-RC2
  perl-5.16.2
  perl-5.14.3
  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.2
Fetching perl 5.16.2 as /usr/local/perlbrew/dists/perl-5.16.2.tar.bz2
Installing /usr/local/perlbrew/build/perl-5.16.2 into /usr/local/perlbrew/perls/perl-5.16.2

This could take a while. You can run the following command on another shell to track the status:

  tail -f /usr/local/perlbrew/build.perl-5.16.2.log

screenとかtmuxたちあげていればログファイルを眺めて待つ。
テストの通過状況を眺めるのもよし。

成功するとperlbrew listでインストールしたPerlが出てくるはず。
出てきたらswitchする

# perlbrew list
  perl-5.16.2
# perlbrew switch perl-5.16.2
シンボリックリンクを張る
# which perl
/usr/local/perlbrew/perls/perl-5.16.2/bin/perl

/usr/local/bin/perlシンボリックリンクを張る。

これで完了。

rootから抜けてperl -vすればインストールしたPerlになっているはず。

$ which perl
/usr/local/bin/perl

その他

perlbrew availableの結果が帰って来ない…とググりまくったけど、結局ソース読んで原因がわかった。
www.cpan.orgの名前解決ができなかったからだった。
iptablesの設定疑ったけどデフォで設定されているDNSがそもそもの原因だったようだ。
GMOクラウドVPSのpDNSやめてGoogle Public DNSに変更して解決。