標準Perl+CPANから、Perlbrew+cpanmへ乗り換え
2012年1月18日Table of Contents
標準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