tokuhirom's Blog

安定的な Perl アプリケーション運用のための perlbrew 運用テクニック

前提知識

perlbrew でセットアップするときに気をつけること

インストール名をデフォルトの perl-5.16.3 などとせず、perl-5.16 と minor version を含めないようにする。

例:

perlbrew install perl-5.16.2 --as perl-5.16

セキュリティフィックスがでた場合の処理

chromaticの記事で知ったのだが、perlbrew には upgrade-perl というコマンドがあり、最新のバージョン(マイナーアップデートのみ)にアップグレードすることが簡単にできる。

perlbrew upgrade-perl

これを利用すると、簡単にセキュリティフィックスをあてることが可能となる。

やっていることは ./configure -Dprefix=... で前のバージョンのディレクトリを上書きしているだけである。

このとき、perl-5.16.2 を perl-5.16 という名前でインストールしておいたのが生きてくる。perl 5.16.2 という名前でインストールしていると、perl-5.16.2 という名前なのに 5.16.3 がはいっているというよくわからない状況になってしまうのだ。

↓よくわからなくなってる例

(とはいえ、別にきもちわるいだけでとくに問題がない)

気をつけるべきはバイナリ互換性

当たり前のことながら、-Dusethreads の有無などを変更したりすると、バイナリ互換性が失われるので、同じオプションでコンパイルする必要があることに注意しよう。

まとめ

perlbrew upgrade-perl を使いこなすことにより安定的な運用が可能となってくる。

【追記】 perlbrew が古いと(0.51 とか)、library の path がうまくとおらないので、perlbrew self-upgrade しておくことが重要です。

【追記】 なお、ある程度の規模感のサーバー台数があって、絶対におとしたらアカン!みたいな状況じゃなければ、こんなことをする必要はないですし、そもそも OS にはいってる perl をつかってれば、OS のアップデートパッチだけあててれば、セキュリティなど考える必要がありません。OS ってすごい!