OS自体が利用する少し古めの安定した Perl とは別に、自分の普段使い用に最新の Perl を入れたくなる時があります。今まで複数のバージョンの Perl の共存環境を作るには、perlbrew を使うのが主流でしたけども、ここでは plenv を利用し、cpanm, cpan-outdated, pm-uninstall と併せて、システムが使う Perl と自分が普段使いする Perl とを共存させる方法をメモしておきます。
GitHub から plenv と perl-build をインストールします。
$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv/
$ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
~/.bashrc の末尾に
export PATH=~/.plenv/bin:~/.plenv/shims/:$PATH
を追記して、新しいシェルを立ち上げ直します。
$ plenv install 5.18.1
でインストールしたあと、普段使いをする予定の perl-5.18.1 をデフォルトに設定します。
$ plenv global 5.18.1
CPAN から Perlモジュールを取って来てビルドやインストールを行う cpanm をインストールします。CPAN を利用するのには、事前に面倒な設定が必要な cpan や cpanp を使うよりは cpanm を使う方が簡単でお勧めです。
$ plenv install-cpanm
で cpanm も plenv がインストールしてくれます。
ローカル環境にある最新ではなくなった Perlモジュールの最新版を知らせてくれる cpan-outdated をインストールします。
$ cpanm App::cpanoutdated
あまり使う機会はありませんけども、Perlモジュールをアンインストールする pm-uninstall をインストールします。
$ cpanm App::pmuninstall
cpan-outdated と cpanm をパイプで繋げて、最新ではない Perlモジュールをアップグレードします。
$ cpan-outdated | cpanm
plenv の簡単な使い方はこんな感じです。
$ plenv versions # インストールされている perl の一覧 $ plenv install -l # インストール出来る perl の一覧
plenv ではディレクトリ毎に使用する perl のバージョンを指定出来るので、例えば特定のディレクトリ内でシステム側の perl を使いたい場合には以下のようにします。
$ mkdir ~/sysperl # 適当な名前のディレクトリを作成 $ cd ~/sysperl # そのディレクトリへ移動 $ plenv local system # そのディレクトリで使う perl を設定
別バージョンの perl を入れているなら `system' の部分を該当するバージョン番号に変えて実行して下さい。後はディレクトリを移動するだけで使用する perl を変更出来ます。
また plenv は、以前インストールした別バージョンの perl で使っているモジュール群を、新しくインストールしたバージョンの perl にまとめてお手軽にインストール出来ます。
$ plenv migrate-modules 5.18.0 5.18.1
この例では 5.18.0 にインストールしているのと同じモジュール群を 5.18.1 にインストールするように指示しています。
その他の使い方が知りたければ、
$ plenv help
して読んでみましょう。
コードの #! は #!/usr/bin/env perl
に統一しましょう。
動作確認環境 : plenv 2.0.1 on Debian GNU/Linux 7.0 wheezy