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がちゃんと入ってくれるはずです。