2006-03-03
_ [BioPerl] BioPerl on Cygwin
Cygwinの調子が悪かったので再インストールし、BioPerlを入れなおそうとする。まずは、CPANからBundle::BioPerlをインストール。
$ perl -MCPAN -e shell cpan>install Bundle::BioPerl
これは、すんなりと成功。ところが・・・
$ wget http://bioperl.org/DIST/current_core_stable.tar.gz $ tar xvzf current_core_stable.tar.gz $ cd bioperl-1.4 $ perl Makefile.PL ・・・ Checking if your kit is complete... Looks good 4 [main] perl 3104 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\bin\cygz.dll to same address as parent(0xD90000) != 0xDA0000 6 [main] perl 2732 child_copy: loaded dll bss write copy failed, 0x6BB04000..0x6BB04120, done 0, windows pid 2288016, Win32 error 5
と、コケてしまいアウト・・・
_ [BioPerl] rebase問題
困って色々と調べてみると、こんな情報をハッケン。
rebase問題 (from 電脳Rubyプロダクツ Cygwin binaries)Cygwin で Ruby のプログラムを動かしていると,
... D:\cygwin\bin\ruby.exe: *** unable to remap D:\cygwin\bin\cygssl.dll to same address as parent(0xDF0000) != 0xE00000 ...みたいなメッセージが延々と出力されてどうしようもなくなることがあります.
このようになったときは,そのプログラムを中止し,
$ rebaseallというコマンドを実行してやると回避できます.setup.exe から rebase というパッケージをインストールしておく必要があります.
これはRubyだけで起こる問題ではなく,Cygwin fork() の問題だそうです.詳しくは rebase のドキュメント (/usr/share/doc/Cygwin/rebase-x.x.README) などを見てください.
との情報が。
そこで、rebaseallコマンドを実行してみると・・・
$ rebaseall rebaseall: only ash processes are allowed during rebasing Exit all Cygwin processes and stop all Cygwin services. Execute ash from Start/Run... or a cmd or command window. Execute '/bin/rebaseall' from ash.
と怒られる。
そこで、一旦、全てのCygwinを止めてから、Windowsのコマンドプロンプトを開き、
> C:\cygwin\bin\ash
と、直接パスでcygwinのashを起動。
$ /bin/rebaseall
を実行してから、再度、perl Makefile.PLを実行してみたら、めでたくMakefileが完成!インストールを続行。
$ make $ make install
※もし、rebaseallで"command not fond"と怒られた場合は、setup.exeからrebaseallをインストールしておく必要があるようです。