[2014-05-17] Windows 7 で Ruby 2.1.2 がビルドできることを確認。
>ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [i386-mingw32]
RubyIntaller のリポジトリを取得
> git pull https://github.com/oneclick/rubyinstaller.git
作業前にいくつか設定の変更をしておく。
/rubyinstaller/config/ruby_installer.rb:
-
'Ruby21 = OpenStruct.new(...):' という行付近にある 'configure_options' の内容を
"CPPFLAGS='-DFD_SETSIZE=2048'"
から
"CPPFLAGS='-DFD_SETSIZE=2048 -DHAVE_STRUCT_TIMEZONE=1'"
に変更。
-
Ruby/Tk は個人的に使わないので 'if ENV['NOTK'] then ... end':' 付近に
Ruby21.dependencies.delete(pkg)
という行を追加。
-
コマンドプロンプトを開いて:
> set NOTK=1 > rake ruby21
rakeはビルド終了後一回途中で止まる→もう一回'rake ruby21'で最後まで走る
- 結果:
- /rubyinstaller/sandbox/ruby21_mingw に一式出来上がる ⇒ 好きなフォルダにコピーして終了
- /rubyinstaller/sandbox/devkit にビルドに使った環境一式がある ⇒ 次の節へ
これは拡張ライブラリのビルド用に使う。
> rake devkit 7Z=1
内容が
/rubyinstaller/pkg/DevKit-tdm-32-4.5.2-20140517-1657.7z
のようなパッケージにまとめられる。
.7zの中身を
C:/Users/me/Programs/RubyInstaller-DevKit
と展開しておく
↓
gem で拡張ライブラリを作るパッケージをインストールする前に、DevKitの場所を下記の手順で設定しておく:
(初回のみでOK)
> cd C:/Users/me/Programs/RubyInstaller-DevKit
> ruby dk.rb init
config.yml というファイルができあがるので内容を編集。rubyインタプリタへの絶対パスを記入する。c:/Users/me/Programs/ruby にあるなら config.yml の最後の行に
- c:/Users/me/Programs/ruby
と書けばOK.
(以下はパスを通す必要があるときに随時)
> cd C:/Users/me/Programs/RubyInstaller-DevKit
> devkitvars.bat
以上を済ませておくと 'gem install [パッケージ名]' のときに RubyInstaller-DevKit 以下のツールを使ってビルドが実行される。
64bit版をビルドしたいときは:
> rake ruby21 dkver=mingw64-64-4.7.2
> rake devkit 7Z=1 dkver=mingw64-64-4.7.2
(/rubyinstaller/rubyinstaller/config/compilers/mingw64.rb の内容を参照)
@vaiorabbit you need to use
mingw64-32-4.7.2
devkit to avoid theHAVE_STRUCT_TIMEZONE=1