DC4

plenv + cpanm + carton

perlbrewで開発していたのですが、 プロジェクト毎にPerlのバージョンが違ってて管理するのが大変になってきたので plenvを導入しました。

plenvのインストール

$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv

plenvのコマンドにPATHを通す

$ vim ~/.bashrc
#追加
export PATH="$HOME/.plenv/bin:$PATH"
eval "$(plenv init -)"

$ exec $SHELL -l

$ plenv -v
plenv 2.1.1-9-g26dbef7

perl-build のインストール

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

インストール可能なperl一覧

$ plenv install --list

5.16.2と5.18.2をインストール

$ plenv install 5.16.2
$ plenv install 5.18.2

インストール済perlの一覧

$ plenv versions
* system (set by /Users/[ユーザ名]/.plenv/version)
  5.16.2
  5.18.2

この時点ではまだシステムperl

グローバルで使用するPerlの指定

$ plenv global 5.18.2
$ plenv versions
  system
  5.16.2
* 5.18.2 (set by /Users/[ユーザ名]/.plenv/version)

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

ディレクトリを作成し、 そのディレクトリ内で使用するPerlの設定

$ mkdir plenv_test
$ cd plenv_test
$ plenv local  5.16.2
$ plenv versions
  system
* 5.16.2 (set by /Users/[ユーザ名]/plenv_test/.perl-version)
  5.18.2

$ perl -v
This is perl 5, version 16, subversion 2 (v5.18.2) built for darwin-2level

ディレクトリを抜けるとグローバルで設定したPerlのバージョンになっている事を確認

$ cd ..
$ plenv versions
  system
  5.16.2
* 5.18.2 (set by /Users/[ユーザ名]/.plenv/version)
$ cd plenv_test

cpanmのインストール

$ plenv install-cpanm

#現在使用しているバージョンのPerlにインストールされます。
$ plenv which cpanm
/Users/[ユーザ名]/.plenv/versions/5.16.2/bin/cpanm

cartonのインストール

$ plenv exec cpanm Carton

cpanfileを作成

$ echo "requires 'Plack';" > cpanfile

cartonの実行

$ plenv exec carton install
# local配下にモジュールが追加される。

これでプロジェクト毎にPerlの環境が変わっても大丈夫!