macportsでPerl5.12(Perl5.8以外)+mod_perl2のインストールが失敗する
この情報は古いです。最近のmacports+perl5+mod_perlに関しては「macports + Perl5 + mod_perl2に関する最近の事情」の方をご覧下さい。
macportのmod_perl2の依存関係はport deps mod_perl2で調べてみると出力結果は、
Full Name: mod_perl2 @2.0.4_0+universal Library Dependencies: perl5, apache2
と表向きperl5に依存していることになっていますが、sudo port install perl5
でインストールされるperlが5.8である前提になってるため、前もってインストールしていたPerl5がPerl5.12(Perl5.8以外)だった場合、インストールに失敗します。
ちなみちょっと前まで確かに sudo port install perl5 でインストールされるperlのバージョンは5.8でしたけど、今は特にvariantsを指定しなければ5.12が入るのでハマります。
解決法
に解決法が書かれているのですが、とりあえず
- perl5.12が既に入っていて、
sudo port install mod_perl2
でインストール失敗したところ
という状態からのインストール方法をまとめてみます。
まずPerl5.12ですが、もしvariants +threads を指定せずにインストールしている場合はvariantsを付加して再インストールします。
sudo port -d install perl5.12 +threads
次に先ほど失敗した mod_perl2 を一旦cleanします(前提がインストール失敗したところ
なので)。
sudo port -d clean mod_perl2
続いて mod_perl2 の Portfile を以下のように書き換える
sudo vi /opt/local/var/macports/sources/rsync.macports.org/release/ports/www/mod_perl2/Portfile
- 旧50行目
system "cd ${destroot}${prefix}/lib/perl5/site_perl/5.8*/darwin-*2level/auto/mod_perl2/ \
- 新50行目
system "cd ${destroot}${prefix}/lib/perl5/site_perl/5*/darwin-*2level/auto/mod_perl2/ \
最後に変更を保存したら再度 mod_perl2 をインストール
sudo port -d install mod_perl2
これでインストールできるようになります。