はむはむエンジニアぶろぐ

このブログのコンセプトは"ハッキングの為なら愛する家族を傷つけることをいとわない" 自分にとってエンジニアリングは "手段ではなく生きる目的" である

plenvを使ってPerlのバージョン管理をする

f:id:secret_hamuhamu:20150426020452p:plain

plenvは、Perlのバージョン管理ツールである。
plenvで何が嬉しいのかというと、古いバージョンのPerlと新しいPerlのバージョンを分けて扱うことが出来る。
Perlのバージョン新しくしたいけど、古いバージョンのコード動かなくなるよ〜って場合に古いバージョンで書かれたPerlは、 古いバージョンのPerlで実行でき、新しいバージョンで書かれたPerlは、新しいバージョンのPerlで実行できる。

plenvをインストール

plenvのドキュメント

plenvは、ユーザのホームディレクトリの下に異なるバージョンのPerlをインストールでき、バージョンごとにモジュールをインストールすることができる。
シェルから任意のPerlのバージョンに切り替えることができる。

plenvインストール

私は、zshを使っているので.zprofileに書き込んでいますが、お使いのシェルに合わせてください。

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


上記の設定をシェルに反映させるためにログインシェルを再起動

exec $SHELL -l
# 再起動しなくてもsourceでもOK
source ~/.zprofile


Perl-Buildをインストールすれば、 plenv install が使えるようになるらしい。
では、Perl 5.18をインストールしてみる。

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

# インストールには時間がかかる
plenv install 5.18.0

# インストール後は、rehashが必要
plenv rehash

# インストールしたPerlのバージョン確認
plenv versions
# インストールできるPerlのバージョン確認
plenv install --list


これで、Perlのバージョンを使い分ける準備ができた。

Perlのバージョンを切り替えてみる

1. ディレクトリ毎に使用するPerlのバージョンを変更する(local)
2. 全体で使用するPerlのバージョンを変更する(global)

plenv local 5.18.0

# Perlのバージョン確認
perl -v

This is perl 5, version 18, subversion 0 (v5.18.0) built for darwin-2level
(with 1 registered patch, see perl -V for more detail)

  Copyright 1987-2013, Larry Wall

  Perl may be copied only under the terms of either the Artistic License or the
  GNU General Public License, which may be found in the Perl 5 source kit.

  Complete documentation for Perl, including FAQ lists, should be found on
  this system using "man perl" or "perldoc perl".  If you have access to the
  Internet, point your browser at http://www.perl.org/, the Perl Home Page.


環境変数を上書きすることで変更もできる。
これを.zprofileに追記しておけば、必ず固定のバージョンで起動できる。

export PLENV_VERSION=5.18.0


最近読んだ本

初めてのPerl 第6版

初めてのPerl 第6版

Perl徹底攻略 (WEB+DB PRESS plus)

Perl徹底攻略 (WEB+DB PRESS plus)

続・初めてのPerl 改訂第2版

続・初めてのPerl 改訂第2版

Perlベストプラクティス

Perlベストプラクティス