CygwinでTime::Pieceのインストールに失敗したときは dosish.h.new -> dosish.h のリンクを作ってみる
Time::Pieceをインストールしようと思ったら、エラーでmakeが失敗してしまいました。
$ perl -MCPAN -e 'install Time::Piece' .. .. /usr/bin/perl.exe /usr/lib/perl5/5.10/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.10/ExtUtils/typemap Piece.xs > Piece.xsc && mv Piece.xsc Piece.c make: *** No rule to make target `/usr/lib/perl5/5.10/i686-cygwin/CORE/dosish.h', needed by `Piece.o'. Stop. MSERGEANT/Time-Piece-1.20.tar.gz /usr/bin/make -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible
/usr/lib/perl5/5.10/i686-cygwin/CORE/dosish.h というファイルがなさそう。
$ ls -l /usr/lib/perl5/5.10/i686-cygwin/CORE/dosish.h ls: cannot access /usr/lib/perl5/5.10/i686-cygwin/CORE/dosish.h: No such file or directory
dosish.h.new という名前のファイルがあったので、とりあえずシンボリックリンクを作ってみる。
$ ln -s /usr/lib/perl5/5.10/i686-cygwin/CORE/dosish.h.new /usr/lib/perl5/5.10/i686-cygwin/CORE/dosish.h
$ perl -MCPAN -e 'install Time::Piece' .. .. PERL_DL_NONLAZY=1 /usr/bin/perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01base.t ...... ok t/02core.t ...... ok t/03compare.t ... ok t/04mjd.t ....... ok t/05overload.t .. ok t/06subclass.t .. ok t/07arith.t ..... ok All tests successful. Files=7, Tests=156, 2 wallclock secs ( 0.09 usr 0.12 sys + 1.10 cusr 0.87 csys = 2.19 CPU) Result: PASS MSERGEANT/Time-Piece-1.20.tar.gz /usr/bin/make test -- OK Running make install Prepending /home/.cpan/build/Time-Piece-1.20-b1ZJr6/blib/arch /home/.cpan/build/Time-Piece-1.20-b1ZJr6/blib/lib to PERL5LIB for 'install' Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/lib/perl5/5.10/i686-cygwin/auto/Time/Piece/Piece.dll Installing /usr/lib/perl5/5.10/i686-cygwin/Time/Piece.pm Installing /usr/lib/perl5/5.10/i686-cygwin/Time/Seconds.pm Installing /usr/share/man/man3/Time.Piece.3pm Installing /usr/share/man/man3/Time.Seconds.3pm Appending installation info to /usr/lib/perl5/5.10/i686-cygwin/perllocal.pod MSERGEANT/Time-Piece-1.20.tar.gz /usr/bin/make install -- OK
テストも通ってるし、まあOKでしょう。