Rubyをビルドしてテストする
ちょっと最近おもうところがあって、rubyのtrunkをビルドしたりmake test したりしている。Ubuntu だとあんまり問題なくビルドできるんだけど、Mac OS X でビルドするのにちょっとハマったので覚書き。
まず、ruby のソースを取ってくる。svn からとってきてもいいんだけど、git つかえるなら GitHub のほうが便利とおもう。
$ git clone git://github.com/ruby/ruby.git
必要なライブラリを入れる。
$ sudo port -d selfupdate $ sudo port -d sync $ sudo port install readline $ sudo port install libyaml $ sudo port install openssl $ sudo port install gdbm
言うまでもなく ruby のリポジトリはもともと svn なので、master ブランチというのはなくて trunk とか ruby_1_9_3 とか
いうブランチが取ってこれる。で、早速ビルドする。
$ cd ruby $ autoconf $ ./configure --prefix=/Users/ayumin/tmp/ruby \ --enable-shared \ --with-readline-dir=/usr/local \ --with-libyaml-dir=/opt/local \ --with-openssl-dir=/opt/local \ --with-gdbm-dir=/opt/local \ --with-arch=x86_64 $ make
configure のオプションは --help を指定してあげると一覧ででてくるので自分の環境にあわせて指定すること。各種ライブラリを macports で導入した場合はだいたい/opt/local の下にはいるのだけど、自分の場合 rvm で1.9.2 を入れたときに readline を /usr/local に入れたのでこのようになっている。
ちなみに全部まとめて指定する場合は --with-opt-dir=/opt/local とか書いてもいいらしい。
あと @nahi さんによると
OpenSSLは1.0.0から、64bit版OS上ではデフォルトで"lib"でなく"lib64"ディレクトリに入り、各種「まとめて指定」が効かないのでご注意。
だそうだ。
さて、無事にビルドできるとカレントディレクトリに miniruby とか ruby とかができているはず。
一旦きれいにしてからやりなおしたい時は
$ make clean
とか
$make realclean
しましょう。
追記
なんかいつのまにか --with-*-dir というのは指定しなくてもよくなったみたい。
こんな感じでビルドできた。
$ autoconf $ ./configure --with-opt-dir=/usr/local --with-opt-dir=/opt/local --prefix=/Users/ayumin/tmp/ruby --enable-shared $ make $ make test