perl-5.14.2を使いたいなと思い、何気なくperlbrew経由でインストールしようとしたら、なにやらビルドに失敗してしまいました。
% perlbrew install perl-5.14.2 # ... 中略 # Bのビルドに失敗している模様 Running Makefile.PL in ext/B ../../miniperl -I../../lib Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.a Can't locate ExtUtils/Constant.pm in @INC (@INC contains: /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/cpan/AutoLoader/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/dist/Cwd /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/dist/Cwd/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/dist/ExtUtils-Command/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/dist/ExtUtils-Install/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/cpan/ExtUtils-MakeMaker/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/dist/ExtUtils-Manifest/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/cpan/File-Path/lib /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/ext/re /home/masasuzu/perl5/perlbrew/build/perl-5.14.2/lib .) at Makefile.PL line 2. BEGIN failed--compilation aborted at Makefile.PL line 2. 512 from ext/B's Makefile.PL at make_ext.pl line 404. Warning: No Makefile! make[1]: Entering directory `/home/masasuzu/perl5/perlbrew/build/perl-5.14.2/ext/B' make[1]: *** No rule to make target `config'. Stop. make[1]: Leaving directory `/home/masasuzu/perl5/perlbrew/build/perl-5.14.2/ext/B' make config PERL_CORE=1 LIBPERL_A=libperl.a failed, continuing anyway... Making all in ext/B make all PERL_CORE=1 LIBPERL_A=libperl.a make[1]: Entering directory `/home/masasuzu/perl5/perlbrew/build/perl-5.14.2/ext/B' make[1]: *** No rule to make target `all'. Stop. make[1]: Leaving directory `/home/masasuzu/perl5/perlbrew/build/perl-5.14.2/ext/B' Unsuccessful make(ext/B): code=512 at make_ext.pl line 463. make: *** [ext/B/pm_to_blib] Error 2 make: *** No rule to make target `lib/auto/Cwd/Cwd.so', needed by `utilities'. Stop.
OSの問題かなと思い、Ubuntu 10.04 amd64、Ubuntu 11.10、Debian lenny、MacOS Xを試しましたが、いずれの環境でも失敗しました。さらに、perlbrew自体の問題かなと思い最新版にアップデートしても同じ箇所でビルドが失敗します。
さらに、今まで普通にビルドできていたperlのバージョンでも失敗するので、自分の環境特有の問題だなとあたりを付けてみると、どうやら$GREP_OPTIONSが悪さをしていたようです。どのオプションが悪いのかまでは追ってませんが、とりあえず下記のようにして回避しました。
% GREP_OPTIONS= perlbrew install perl-5.14.2
ちなみにどの環境でも設定されているGREP_OPTIONSは以下の通りです。どれかが悪さをしている模様。
% echo $GREP_OPTIONS --color=auto --exclude=\*.tmp --binary-files=without-match