Encode::Detect 入らない
前も書きましたけど Encode::Detect がうまく入らないのです。
% perl Makefile.PL % make rm -f blib/arch/auto/Encode/Detect/Detect.so gcc -shared -L/usr/local/lib Detect.o -o blib/arch/auto/Encode/Detect/Detect.so \ \ gcc: Detect.o: No such file or directory gcc: no input files make: *** [blib/arch/auto/Encode/Detect/Detect.so] Error 1
実際には CPANPLUS 使ってるんですが上記と同じエラーが出ます。
ところが今日別のマシンで CPANPLUS を使ったらなぜかインストールできました。きちんとログをとってなかったんで違いはわかりませんが,ディストリビューションをインストールできる方法がわかりました。
ExtUtils::MakeMaker (Makefile.PL) ではなく,(Makefile.PL は付属してませんでした)Module::Build (Build.PL) を使うといけます。
% perl Build.PL % ./Build ... blah ... % ./Build test ... blah ... % sudo perl Build install
でいけました。前述の環境だとなんでいけたのか謎。
追記 2006/10/10
CPANPLUS最新にすれば自動でインストールログ取ってくれるよ!
ナルホド!
と思ってインストール成功したログ(~/.cpanplus/install-logs/モジュール名-タイムスタンプ)をみてみましたが,成功ログなのでイマイチわからない。
で,失敗したマシンのログをみてみたら…
[ERROR] [Fri Oct 6 17:05:28 2006] This module requires 'Module::Build' and 'CPANPLUS::Dist::Build' to be installed, but you don't have it! Will fall back to 'CPANPLUS::Dist::MM', but might not be able to install!
[MSG] [Fri Oct 6 17:05:29 2006] No 'Makefile.PL' found - attempting to generate one
ああぁ… Makefile.PL は CPANPLUS が勝手に作ってくれたものだったのですね。カコワルス。
ということで,インストールできていなかった理由は,Module::Build あるいは CPANPLUS::Dist::Build が入っていなかったからでした。
これまで cpan install CPANPLUS して満足していたんですが,これからはきちんと Bundle::CPANPLUS::Dependencies をインストールすることにします。
追記 2006/10/10-2
Module::Build の C Support が disabled だとうまくいかないので,u Module::Build -> i ExtUtils::CBuilder, おまけで i ExtUtils::ParseXS -> i Module::Build って手順で入れ直す必要アリ。