tetraの外部記憶箱

«前の日記(2006-03-01) 最新 次の日記(2006-03-04)» 編集
Category;

2006-03-03

_ [memo] まなちゃんを救う会

_ [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をインストールしておく必要があるようです。