libv8とtherubyracer入らない問題にわたしもハマったメモ
つまづきまくって半泣きで1日無駄にしたのでメモだよ。
参考:therubyracer 0.11.0 問題まとめ - 自称すーじー。
■原因
上記エントリで詳しく説明してくださっていますが、つまり therubyracer と libv8 というふたつのgemの依存関係/相性の問題のようです。
環境によって、ちゃんと動くtherubyracerを選択してあげること&そのtherubyracerが必要としてるversionのlibv8を入れてあげることが必要になります。
■で、どれを選べばいいの
・自分の環境をチェック
$ ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'
x86_64-darwin-11 #こんな風に出てきました。これだー
・環境と照らしあわせて選ぶ
めちゃ便利な表にまとめられていました、ハラショー!
CPU | OS | OS Version | libv8 | therubyracer |
---|---|---|---|---|
amd64 | freebsd | 8 | 3.3.10.4 | 0.10.2 |
9 | ||||
x86 | darwin | 10 | ||
11 | ||||
linux | ||||
freebsd | 9 | 3.11.8.3 | 0.11.0 | |
x86_64 | darwin | 10 | ||
11 | 3.3.10.4 | 0.10.2 | ||
12 | 3.11.8.3 | 0.11.0 | ||
13 | 3.16.14.3 | 0.12.1 | ||
linux | 3.11.8.3 | 0.11.0 |
参考:https://github.com/cowboyd/libv8/issues/62#issuecomment-11410890
※最下行は元の表になかったためこちらで調べて追加しています
わたしの場合 x86_64 - darwin - 11 なので7行目ですね。
libv8 の 3.3.10.4 と、therubyracer の 0.10.2 です。
これを入れましょう。
$ gem install libv8 -v '3.3.10.4' -- --with-system-v8
※V8エンジンというのも入れるオプションつきなので長いけどがんばりましょう
$ gem install therubyracer -v '0.10.2' -- --with-v8-dir
確認
$ gem list libv8
*** LOCAL GEMS ***
libv8 (3.3.10.4)
$ gem list therubyracer
*** LOCAL GEMS ***
therubyracer (0.10.2)
やったー入ったー