コンパイル前の日記までの方法では限界があるのでRubyをコンパイルする正解を探していたら、ついに発見しました。ページからrubyinstallerをゲットします。READMEを読みましょう。・UTF-8日本語を正常に扱うために、コンパイラはmingw64-32-4.7.2を使ってDevKitを構成することにします。・既存のRubyにパスの通ったコマンドプロンプトを起動して先ずはDevKitを作ります。DKVER=mingw64-32-4.7.2・クロスコンパイル指定でconfigureしないとこけるので、config\ruby_installer.rbの130行目付近に下記を追加します。'sandbox/Ruby210w',・コマンドプロンプトで作業すると見通しが悪いので、minttyを準備します。・C:\rubyinstaller\sandbox\devkitにmsys.batがあるので、ショートカットを作ります。ショートカットからminttyを起動して透過率・文字サイズ・画面サイズを設定します。・再度minttyを起動して以下の手順でコンパイルします。ruby21・Ruby-2.1.1をコンパイルする場合は、ソースをc:\ruby211cに置いたとして、次のような手順になります。:tkを使っています。特別に処理をしています。・それぞれの外部ライブラリは以下から持ってきています。'v0.5.0.zip'・通常のコンパイルの後で、各ライブラリのbinの中身をRuby210w/binにコピーしています。・次に、rubyのソースファイルのbinの中身をRuby210w/binにコピーしています。・次に、readlineの処理をしています。・Historyを読むと、readlineはRuby-2.0対応になっているようです。・UTF-8日本語の扱いは正常です。・railsのインストールは正常です。インストールも正常です。・C:\Ruby210w\lib\ruby\gems\2.1.0\gems\sqlite3-1.3.9-x86-mingw32\lib\sqlite3\2.1に作成済みのsqlite3_native.soを入れてやります。updateも正常です。・scaffoldも正常に働きます。db:migrateも正常です。sも正常、ユーザー登録も正常にできます。herokuがdlを使っているのが問題なのだと思われます。・総合的にはRubyInstallerのRuby-2.0.0並みの出来栄えだと思われます。コンパイル※後日rubyinstallerを使ってコンパイルする方法を発見したので、この日記を全面的に書き換えます。(14/03/08)目標はUTF-8日本語の扱いが正常なRuby2.1.0をビルドすることです。64bit環境で正常なRubyを作るのに非常に苦労しました。正しいコンパイラを使う・UTF-8日本語が正常なのは今のところrubenvb版のmingw-w64だけなので、これを使います。systems.・RubyInstallerがrubenv版のgcc-4.7.2を使っているので、これに習うことにします。・するとこのページから正しいものを選ぶことになります。・普通に読むと次の名称のものが候補になります。file.というエラーを出すので、今のところ使えません。MSYSはどこに配置すべきか?・コンパラをいろいろ試しているとMSYSのアイコンがどんどん増えて大変です。・コンパイラの数だけMSYSを用意するのはHDD容量的に無駄です。・MSYSはc:\の直下に配置するのが正解だと思います。・コンパイラはその下にmingwという名前で配置します。fstabファイルを使ってコンパイラのフォルダをmingwにマウントします。・コンパイラを入れ替えてもMSYSをいじる必要はないことになります。アイコンも一つでOKです。・因みに、etc/fstabファイルは現在こんな具合になっています。/mingwどのMSYSを使うか・これでいいんじゃないでしょうか。cleanでパラメータエラーを出すので採用していません。拡張用ライブラリはどこに配置するか?・LIBRARY_PATH、BINARY_PATH、INCLUDE_PATHといった環境変数を設定すればどこでも良さそうなものですが、コンパイル中に走っているRubyとの関係もあり、場所が限定されます。結論としてrubyのソースの直下に入れます。適切な拡張用ライブラリを準備する・RubyInstallerが使用しているライブラリを使います。'v0.5.0.zip'・上記のうちreadlineはRuby専用の特殊なものです。readline抜きでビルドした後で使います。コンパイル・Ruby2.1.0のソース、拡張用ライブラリを配置します。・以下の手順でビルドできます。install・ビルド完了後、ruby210c/binの下にあるファイルを全てRuby210d6432/binの下にコピーします。readlineのインストール・解凍したrb-readline-0.5.0フォルダをホームの下に配置します。・ビルド済のRuby210d6432にパスを通して使い方を確認します。--help・次のコマンドでインストールできます。・UTF-8日本語の扱いは正常です。・前の日記に書いた方法でRuby-2.1用のsqlite3を準備すれば、railsをインストールしてDBを使うアプリの作成まで正常に動作します。・rubyinstallerでビルドしたものと同等と思われます。DevKitの64-32版を使うのがベストです。64bit・RubyInstallerが配布しているDevKitはMingw/MSYSそのものです。・32bit版はTDM版のMinGWを使っている模様です。