Ruby をソースからビルドして rbenv で使う方法
まず、Ruby 本体に手を加えてそれをフィードバックする可能性があるなら、GitHub 上で fork してからそれを clone ましょう。そうでなくて単に最新の Ruby を追いかけたい!というような場合は、https://github.com/ruby/ruby.git を clone すればよいでしょう。
clone したら trunk ブランチをチェックアウトします。(GitHub 上でデフォルトのブランチを trunk ブランチにしておくと良いと思います。)
$ git clone git@github.com:<username>/ruby.git ~/ruby
もしくは
$ git clone https://github.com/ruby/ruby.git ~/ruby
その後、
$ cd ~/ruby $ git checkout trunk
とします。
チェックアウトしたばかりだと configure ファイルがないので、README に書かれているとおりに autoconf を実行します。
$ autoconf
これで configure が生成されます。
次に、以下の記事に書かれているような方法で、./configure を実行します。
このとき、--prefix オプションで ~/.rbenv の中にインストールされるようにします。
独自ビルドした ruby を rbenv で使う
$ ./configure --prefix=$HOME/.rbenv/versions/fix9367 --enable-shared --enable-debug-env CPPFLAGS='-DRUBY_DEBUG_ENV -DARRAY_DEBUG'
私の場合は Bug#9367 の修正を行いたかったので、インストール先は ~/.rbenv/versions/fix9367 としました。
それ以外のオプションは上記記事と同じにしてあります。
configure が完了したら、make します。
$ make
その後、README に従って make check を行いましょう。
$ make check
なんか私の環境ではエラーが起きてしまいました(汗)
とりあえずインストールしてみましょう。
$ make install
こちらは無事成功したようです。
$ rbenv versions
system
:
fix9367
インストールしたバージョンが一覧に現れました。
$ mkdir ~/tmp $ cd $_ $ rbenv local fix9367
これで ~/tmp 以下にいるときは fix9367 が使われるようになります。
$ cat .ruby-version fix9367
試しにバージョンを確認してみると:
$ ruby -v ruby 2.2.0dev (2014-01-05 trunk 44507) [x86_64-linux]
このあたりの表示は clone してきた時の最新の状態になっているようですね。ソースツリーのどこかのファイルを書き換えたりするとこのバージョン表記も変更できるのかもしれません。