notebook

都内でWEB系エンジニアやってます。

# plenv

plenv導入

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

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

これだけでインストール終わり、後は簡単な使いかたを列挙してきます

  • plenvのバージョン確認
$ plenv --version
plenv 2.1.1-9-g26dbef7
  • インストール可能なPerlのリスト
$ plenv install -l

インストール可能なPerlのリストを表示できます

  • perlのインストール
$ plenv install 5.16.2

インストールするバージョンを指定

  • 導入済みperl一覧
$ plenv versions
* system (set by /home/user/.plenv/version)
  5.8.8
  • ローカルのバージョンを指定
$ plenv local 5.16.2
$ plenv version
5.16.2
  • cpanmのインストール
$ plenv install-cpanm

現在有効になっているバージョンのperlにcpanmがインストールされる

  • cartonのインストール
$ plenv exec cpanm Module::Install
$ plenv exec cpanm Carton
  • モジュールのインストール 適当にcpanfile作ってcartonでインストール
$ plenv exec carton install
  • モジュールの移動 あるバージョンにあるモジュールを別のバージョンに移行することができる これ便利! 5.8.8の環境でインストールしたモジュールを5.16.2環境にもインストール
$ plenv migrate-modules 5.8.8 5.16.2

おまけ

plenv DBD::mysql インストール

plenv exec cpanm -l ~/development/local http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.004.tar.gz --configure-args="CC=gcc --mysql_config=/usr/bin/mysql_config --testuser=root"

Segmentation Fault

plenv環境で色々インストールしてるとSegmentation Faultで詰まる事が多かった

大体こけるときはsoファイルを使うとき、plenvで用いているperl環境にあったsoファイルが読み込まれていないことが原因っぽい

なのでログ見てsoファイルが原因でSegmentation Faultが起きた場合はパスを見て共通のパスをなるべく読ませないようにすると回避できるみたい