macports + Perl5 + mod_perl2に関する最近の事情
macportsにしてもmod_perlにしても、今になって需要があるのかちょっと分からないのですが、以前書いた「macportsでPerl5.12(Perl5.8以外)+mod_perl2のインストールが失敗する」の情報が古くなってることにたまたま気がついたので、その辺に関して新しい情報を整理しておきます。
前回の記事から今日の間にmacportsも1.9.x系から2.0.x系へメジャーバージョンアップし、それを機に結構細かい部分が変わってるみたいです。
Perl5.8系である必要がなくなった
以前のmod_perl2ではライブラリ依存は
- perl5
- apache2
とされてたのですが実際はperl5.8である必要があり、それを回避する方法が前回の記事だったわけですが、
sudo port install perl5
でインストールされるのがperl5.12になって久しくなったせいか、最近ではperl5.8縛りではなくなってます。なので以前のようにダウンロードしたmod_perl2のPortfileを書き換えることなくインストールできるようになりました。
perl5の付加variants要件が変更されている
以前、perl5には +threads が付加されている必要がありましたが、最近では更に +shared が必要になります。で、厄介なのはport variants perl5
で確認すると
perl5 has the variants: perl5_10: use perl 5.10 instead of perl 5.8, perl 5.12, perl 5.14 * conflicts with perl5_12 perl5_14 perl5_8 perl5_12: use perl 5.12 instead of perl 5.8, perl 5.10, or perl 5.14 * conflicts with perl5_10 perl5_14 perl5_8 perl5_14: use perl 5.14 instead of perl 5.8, perl 5.10, or perl 5.12 * conflicts with perl5_10 perl5_12 perl5_8 perl5_8: use perl 5.8 instead of perl 5.10, perl 5.12, or perl 5.14 * conflicts with perl5_10 perl5_12 perl5_14
となり、例えば5.12系をインストールしようと
sudo port install perl5 +perl5_12
とかしようものなら、variantsなしのperl5.12がインストールされます。perl5.12のvariantsを確認すると、
$ port variants perl5.12 perl5.12 has the variants: dtrace: Build with DTrace probes shared: Build shared perl library threads: Build with thread support (+)universal: Build for multiple architectures
ということなので、直接perl5.12を突っ込んじゃった方が簡単だし分かりやすいです。で、これらの条件さえクリアしてればmod_perl2がちゃんと入ってくれるはずです。