前回は FreeBSD 8.3 での libv8 のインストールについてお話しました。
今回は FreeBSD 9.0 での libv8 インストールのお話です。 FreeBSD 8.3 での対応方法と同じ方法ではうまくいきません。 少し細工をします。
作業記録
0. 作業環境
- FreeBSD 9.0 (amd64)
- Ruby 1.9.3-p194
- Rails 3.2.3
1. 発生するエラー
libv8 インストール後、therubyracer をインストールしようとして発生したエラーです。(Rails で bundel install しても同じエラーが発生します) libv8 の部分でエラーが発生しているようです。(FreeBSD 8.3 でのエラーと同じです)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
2. 原因
File: README - Documentation for libv8 (3.3.10.4) にも記載されてますが、元々 libv8 は
- x86_64-darwin10.7.0
- x86_64-linux
- x86-linux
がサポート対象のようです。 そのため、今回の環境(FreeBSD amd64版)では libv8 のインストールは一見成功しているようでも、実は正しくインストールされていないようです。(FreeBSD 8.3 のケースを同じ)
3. 対策
・後に必要となるビルドツール SCons をインストールしておく
1 2 |
|
・RubyGems libv8 を普通にインストールする。一見インストールに成功したように見えるはずです。
1
|
|
・libv8 を再度手動でビルドするのですが、その前に SConstruct を編集しておきます。(make の Makefile に当たるファイルです) “freebsd” の “CCFLAGS” の部分を以下のように修正します。
1 2 3 4 5 6 7 8 9 |
|
・64ビット版を指定してビルドします。
1
|
|
・正常に終了することを確認します。
4. therubyracer インストール
libv8 がインストールできたら、therubyracer をインストールします。成功するはずです。
1
|
|
もしくは、rails アプリ側で bundel install しても OK!
参考サイト
- libv8 | RubyGems.org | your community gem host
- Issue #158: Error building therubyracer/libv8 on FreeBSD 9 (and a solution) ・ cowboyd/therubyracer ・ GitHub
これで、FreeBSD 9.0 (amd64) でも最新の Ruby on Rails が使用できるようになりました。 また、今回は FreeBSD 9.0 でしたが、ひょっとしたら 8系でも同様の方法でいけるかもしれません。(未確認) ※ちなみに、i386 版については試していませんしので現時点では詳細は不明です。
以上。