plenv に乗り換えてみた

これまで perlbrewを使っていましたが、plenvに乗り換えてみました。
perlbrew と違いプロダクト(アプリケーション)毎に perl のバージョンを指定できたり、バージョン間のモジュール移行ができたりと便利そうです。
以前は perl で実装されていたようですが、shell で再実装されたそうです。

インストール

GitHub からインストールします。*1

$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv
$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(plenv init -)"' >> ~/.bashrc
$ exec $SHELL -l

plenv で perl をインストールするのに実行する perl-build もインストールします。

$ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/

plenv のバージョン確認

$ plenv --version
plenv 2.0.1-7-ge389af0

perl のインストール

インストール可能な perl の確認

$ plenv install --list
Available versions:
 5.6.0
 .....
 5.18.0
 5.19.0
 5.19.1

perl のインストール

$ plenv install 5.18.0

インストール済み perl の確認

$ plenv versions
* system (set by /Users/username/.plenv/version)
  5.16.3
  5.18.0

使用する perl バージョンの設定

グローバル設定

デフォルトで使用する perl バージョンを設定します。

$ plenv global 5.16.3
$ plenv global 
5.16.3
$ plenv versions
  system
* 5.16.3 (set by /Users/username/.plenv/version)
  5.18.0
$ perl -version

This is perl 5, version 16, subversion 3 (v5.16.3) built for darwin-2level

....

ローカル設定

カレントディレクトリに .perl-version が作成され、カレントディレクトリ以下ではローカル設定で指定した perl バージョンが優先されます。

$ plenv local 5.18.0
ローカル設定の確認

作業用ディレクトリを作成し、そのディレクトリでローカル設定を行います。
上位ディレクトリに移動し、グローバル設定なバージョンが有効になることを確認します。

$ mkdir -p test/hogehoge
$ cd test/hogehoge
$ plenv version
5.16.3 (set by /Users/username/.plenv/version)
$ plenv local 5.18.0
$ plenv version
5.18.0 (set by /Users/username/test/hogehoge/.perl-version)
$ perl -version

This is perl 5, version 18, subversion 0 (v5.18.0) built for darwin-2level

.....
$ cd ..
$ plenv version
5.16.3 (set by /Users/username/.plenv/version)
$ perl -version

This is perl 5, version 16, subversion 3 (v5.16.3) built for darwin-2level

.....

ちゃんとバージョンが切り替わりました。
便利。

cpanm のインストール

有効になっているバージョンの perl に cpanm をインストールします。

$ plenv install-cpanm

which オプションでコマンドのフルパスが確認できます。

$ which cpanm
/Users/username/.plenv/shims/cpanm
$ plenv which cpanm
/Users/username/.plenv/versions/5.16.3/bin/cpanm

しばらく plenv を使ってみようと思います!!


tokuhirom/plenv · GitHub

*1:Homebrew でのインストールも可能