Ruby1.9のtrunkをmswin32(VS2005)でコンパイル、インストールする
Ruby1.9環境も揃いつつあるようなので、ここらで今までの経験値とVisual Studio 2005付属のコンパイラを使って、Ruby1.9のtrunkをコンパイルしてみることにした。
以下、忘れないように手順をメモ
- 1. ソースコードを取得する。
今回はftp://ftp.ruby-lang.org/pub/ruby/snapshot.tar.gzより、3/5版のスナップショットを頂く。
取得したソースコードを適当なディレクトリに展開する。(e:\build_ruby1.9.2)
- 2. Ruby自身をコンパイルする
1.8系同様の手順で良い。コマンドプロンプトを管理者権限で開き、以下の順で実行
>"%VS80COMNTOOLS%vsvars32.bat" Setting environment for using Microsoft Visual Studio 2005 x86 tools. >e: >cd e:\build_ruby1.9.2\win32>nmake >nmake install違うのは、1.9系からはインストール先ディレクトリの指定がnmake実行時のDESTDIRパラメタでは無く、configure.batの--prefixパラメタで指定するところ位。1.8のスナップショットとは違い、ビルドで不都合が出ることは一切無かった。ありがたい。
- 3. ruby.exeのバージョンを確認する
>e: >cd e:\ruby1.9.2\bin >ruby -v ruby 1.9.2dev (2009-03-05 trunk 22783) [i386-mswin32_80]
- 4. zlibをコンパイルする
>"%VS80COMNTOOLS%vsvars32.bat" Setting environment for using Microsoft Visual Studio 2005 x86 tools. >cd E:\build_ruby1.9.2\zlib-1.1.4-1\win32 >nmake >... >mt -manifest zlib.dll.manifest -outputresource:zlib.dll;2 Microsoft (R) Manifest Tool version 5.2.3790.2075 Copyright (c) Microsoft Corporation 2005. All rights reserved.zlibにはMakeFileが用意されているので、いきなりnmakeでもOK。ただし、出来たライブラリィ(zlib.dll)は手動でビルドが完了したruby.exeのある場所(e:\ruby1.9.2\bin)にコピーする。 なお、マニフェストが作成されている場合はmt.exeを使用して、手動でマニフェストをDLLに埋め込む必要がある。このコマンドも全く知らなかったので、MSDNでパラメタを確認した。 方法 マニフェストを C-C++ アプリケーションに埋め込む
- 5. zlibの拡張ライブラリィを作成してruby環境にインストール
>"%VS80COMNTOOLS%vsvars32.bat" Setting environment for using Microsoft Visual Studio 2005 x86 tools. >e: >cd E:\build_ruby1.9.2\snapshot\ext\zlibchecking for deflateReset() in z.lib... no checking for deflateReset() in libz.lib... yes checking for zlib.h... yes checking for kind of operating system... Win32 creating Makefile >nmake Microsoft(R) Program Maintenance Utility Version 8.00.50727.762 Copyright (C) Microsoft Corporation. All rights reserved. : 略 ライブラリ zlib-i386-mswin32_80.lib とオブジェクト zlib-i386-mswin32_80.exp を作成中 mt -nologo -manifest zlib.so.manifest -outputresource:zlib.so;2 >nmake install Microsoft(R) Program Maintenance Utility Version 8.00.50727.762 Copyright (C) Microsoft Corporation. All rights reserved. install -c -p -m 0755 zlib.so e:\ruby1.9.2\lib\ruby\site_ruby\1.9.1\i386-msvcr80重要なのはextconf.rb実行時のパラメタ"--with-zlib-include"及び"--with-zlib-lib"でzlibのincludeファイルとコンパイルで作成されたライブラリィの場所を指定すること。これを忘れるとMakeFileの作成に失敗する。
- 6. 最終確認
>gem list --localここまで来ればもう大丈夫だ。あとは必要なgemをインストールするだけ。 なお、1.8系でインストールされていた、他の拡張ライブラリィに関しては今回インストールを省いているが、必要に応じて同様にインストールできるはずだ。