標準Perl+CPANから、Perlbrew+cpanmへ乗り換え

標準Perl+CPANから、Perlbrew+cpanmへ乗り換え

複数バージョンのPerlを管理、切り替えできるPerlbrewのインストールメモ。

perlbrewのインストール

まず最初に、インストール先の設定を行う

$ export PERLBREW_ROOT=$HOME/.perlbrew

その後、続けてperlbrewのインストール

$ curl -L http://xrl.us/perlbrewinstall --insecure | bash

perlbrew初期設定

以下のコマンドで、初期設定を行う

$ ~/.perlbrew/bin/perlbrew init
$ echo 'source ~/.perlbrew/etc/bashrc' >> ~/.bashrc
$ source ~/.bashrc

perlのインストール

お好みで、バージョンを変更してください
現時点での安定版は、5.14.2なので、5.14.2のインストールを行います

$ perlbrew install -v perl-5.14.2 -D ccflags=-fPIC

「-D ccflags=-fPIC」というオプションを付けてインストールします

インストールが完了したら、以下のコマンドで確認します

$ perlbrew list
* perl-5.14-2
  /usr/bin/perl (5.8.8)

変更は、「switch」コマンドで

$ perlbrew switch perl-5.14.2

また、詳細情報は以下のコマンドで確認できます(@INCなど)

$ perl -V

cpanmのインストール

cpan要らずのcpanmをインストールします

$ curl -L http//cpanmin.us/ | perl - App::cpanminus
# 使い方
$ cpanm Task::Catalyst

他のPerlでも利用できるように、「install-cpanm」を実行します

$ perlbrew install-cpanm

また、アンインストールやアップデートに便利な以下の2つのパッケージもインストールします

$ cpanm App::pmuninstall
# 使い方
$ pm-uninstall Acme

$ cpanm App::cpanoutdated
# 使い方
$ cpan-outdated | cpanm

DBD::mysqlのインストール

通常通りにインストールしても、失敗するので以下対策を紹介します
既知のバグらしく、パッチが公開されていますが、まだ反映されてないようです
ref. Bug #68112 for DBD-mysql: is_prefix is not exported by

$ cpanm DBD::mysql
$ cd .cpanm/work/1326866274.22234/DBD-mysql-4.020
$ vim mysql.xs
#「using_322=is_prefix(mysql_get_server_info(imp_bh->pmysql),"3.22");」を探します
# 以下に書き換えます
using_322 = ((strncmp(mysql_get_server_info(imp_dbh->pmysql),"3.22",4) == 0) ? 1 : 0 );
# 保存後、Makefile.PLを実行します
$ perl Makefile.PL
$ make
$ make install

インストールされているか確認します
何もエラーが表示されなければ、インストール完了です

$ perl -MDBD::mysql -le 1