今日は、ブログでは滅多にしない FreeBSD 関連についてのお話です。
FreeBSD で Ruby on Rails 3.2.x を動かそうとすると、therubyracer という RubyGems が必要になります。 この therubyracer のインストールにはさらに Google JavaScript エンジンである libv8 という RubyGems が必要です。
しかし、libv8 をインストール後 therubyracer をインストールしようとするとエラーが発生してインストールできません。
作業記録
0. 作業環境
- FreeBSD 8.3 (amd64)
- Ruby 1.9.3-p194
- Rails 3.2.3
1. 発生するエラー
libv8 インストール後、therubyracer をインストールしようとして発生したエラーです。(Rails で bundel install しても同じエラーが発生します) libv8 の部分でエラーが発生しているようです。
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 のインストールは一見成功しているようでも、実は正しくインストールされていないようです。
3. 対策
普通に libv8 をインストールするのではなく、FreeBSD 8 (amd64) 用の Gem が(今では)用意されているので、それを直接指定してインストールすると良いようです。 その方法は以下の通り。(あらかじめ、先ほどインストールした libv8 はアンインストールしておきます)
1 2 3 |
|
4. therubyracer インストール
libv8 がインストールできたら、therubyracer をインストールします。成功するはずです。
1
|
|
もしくは、rails アプリ側で bundel install しても OK!
参考サイト
これで、FreeBSD 8.3 (amd64) でも最新の Ruby on Rails が使用できるようになりました。 また、今回は FreeBSD 8.3 でしたが、8系なら同様の方法だと思います。 ※ちなみに、i386 版については試していませんし、i386 用の Gem も公開されていないようなので現時点では詳細は不明です。
以上。