MinGW版Rubyのインストール

これまでVC++なしの環境で、mswin32版Rubyを使っていたのですが、拡張ライブラリが使えないので、MinGW版に移行することにしました。

MinGWのインストール

まずはMinGWの本家サイトから、バイナリをダウンロードしてインストールします。インストール手順については、C-Compiler Wikiが詳しいです。

MinGWには海外製ソフトウェアの例に漏れず、日本語の取扱いに問題があるそうです。これを解消するためのMinGW 日本版プロジェクトなるものもあるようですが、メンドくさいので後で問題がでるまでホッておくことにしました。

MSYSはインストールしません。もともとRubyの拡張ライブラリのコンパイルをしたいだけなので、元からインストールしてあるcygwinを使います。

Rubyソースのダウンロード

ついでにRubyのソースも最新の安定版である1.8.2をダウンロードしました。

Rubyコンパイル

Ruby インストールガイドを参考にコンパイルを始めようと思ったところで、実はMinGWはいらないということに気がつきました。Cygwinの1.3以降には、MinGWが同梱されているのです。

ということで、インストールガイドのとおりにやってみます。

$ ./configure --with-gcc='gcc -mno-cygwin' --enable-shared --prefix=c:/ruby/ruby-1.8.2-mingw i386-pc-mingw32

configureまではうまくいっているようです。

config.h unchanged
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating Makefile

ところがmakeがうまくとおりません。

make

とコマンドを叩くと

compiling curses
./lib/fileutils.rb:687:in `unlink': Permission denied - mkmftmp.log(Errno::EACCES)
from ./lib/fileutils.rb:687:in `remove_file'
from ./lib/fileutils.rb:618:in `rm'
from ./lib/fileutils.rb:617:in `each'
from ./lib/fileutils.rb:617:in `rm'
from ./lib/fileutils.rb:634:in `rm_f'
from ./lib/mkmf.rb:109:in `rm_f'
from ./lib/mkmf.rb:177:in `postpone'
from ./lib/mkmf.rb:168:in `open'
from ./lib/mkmf.rb:168:in `postpone'
from ./lib/mkmf.rb:467:in `checking_for'
from ./lib/mkmf.rb:480:in `have_library'
from ../.././ext/curses/extconf.rb:9
from ./ext/extmk.rb:84:in `load'
from ./ext/extmk.rb:84:in `extmake'
from ./ext/extmk.rb:238
from ./ext/extmk.rb:235:in `glob'
from ./ext/extmk.rb:235
make: *** [all] Error 1

cursesの拡張ライブラリのコンパイルのところでエラーになってしまいます。
今日はここまでで時間切れです。続きは、また来週にでもやりましょう。