plenv の基本
インストール
GitHub からダウンロードしてインストールします。
$ git clone https://github.com/tokuhirom/plenv.git ~/.plenv
$ git clone https://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
~/.bashrc
export PATH=$HOME/.plenv/bin:$PATH
eval "$(plenv init -)"
必要なソフトウェアのインストール
例えば以下のようなものが必要になります。状況に応じて追加で適宜インストールしてください。
$ sudo yum install gcc
$ sudo yum install openssl-devel
$ sudo yum install patch
$ sudo yum install readline-devel
plenv を用いた perl のインストール
インストール
$ plenv install -l
$ plenv install 5.20.0
$ plenv rehash
$ plenv versions
バージョンの切替
$ plenv global 5.20.0
$ plenv local 5.20.0
$ cat .perl-version
5.20.0
cpanm のインストール
cpanm は ruby の gem コマンドに相当します。現在有効な perl に対してのみインストールされることに注意してください。
$ plenv install-cpanm
$ plenv which cpanm
carton の基本
インストール
carton は ruby の bundler に相当します。cpanm でインストールします。
$ plenv exec cpanm Carton
$ plenv rehash
carton の利用例
carton を用いて Plack および Starman のインストールする手順を carton の利用例として紹介します。
設定ファイルの作成
$ cat cpanfile
requires 'Plack', '0.9980';
requires 'Starman', '0.2000';
インストール
cpanfile.snapshot および local/ が生成されます。
$ plenv exec carton install
Perl モジュールをローカルに保存
vendor/cache/ が生成されます。rbenv exec bundle package のようなものです。
$ plenv exec carton bundle
バージョン管理システム
Git などを利用している場合は以下のように考えます。
- local/ → レポジトリに含めない
- cpanfile.snapshot → 後述の --deployment を利用する際に必要なためレポジトリに含める
- vendor/cache/ → 後述の --cached を利用する場合はレポジトリに含める
- .perl-version → plenv の使用を前提としたプロジェクトであればレポジトリに含める
別の PC でインストールする際の手順
Git clone した後に別の PC でインストールする手順は数種類あります。開発環境のように cpanfile のバージョン情報を満たせばよいという場合は以下のようにします。
$ plenv exec carton install
ローカルに保存したキャッシュがレポジトリに含まれている場合はそれを利用できます。
$ plenv exec carton install --cached
cpanfile.snapshot の依存関係に完全にしたがってインストールするためには以下のようにします。
$ plenv exec carton install --deployment
ローカルに保存したキャッシュがレポジトリに含まれている場合はそれを利用できます。
$ plenv exec carton install --deployment --cached
動作検証
myapp.psgi
my $body ="hello plack!";
my $app = sub {[
200,
[ "Content-Type" => "text/html", "Content-Length" => length $body ],
[ $body ],
];
};
$app;
コマンド例
$ plenv exec carton exec starman -p 8080 myapp.psgi