Railsでbundle install
した時,libv8とtherubyracerでエラーが出たので,その時の対処法をまとめてみた.
環境
- OS
- OS X Yosemite (10.10.2)
- Ruby
- 2.1.0p0
- Rails
- 4.0.2
- Gem
- 2.2.0
状況
Railsプロジェクトのbundle install
を実行した時,なんかのgemでlibv8もしくはtherubyracerがインストール出来ません.
エラー内容はbundle installする前にlibv8かtherubyracerのインストール完了させてから,もう一度bundle installしろと怒られます.
対処法
まず自分のOSのバージョンを次のコマンドを実行して確認します.
$ ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)' - See more at: http://3.1415.jp/d3wpyqjr#sthash.kCD9jw8J.dpuf
私の環境ではx86_64-darwin-14
となりました.
次に,下の対応表でOSのバージョンとlibv8とtherubyracerのバージョンを確認します.
CPU | OS | Version | libv8 | therubyracer |
---|---|---|---|---|
amd64 | freebsd | 8 | 3.3.10.4 | 0.10.2 |
amd64 | freebsd | 9 | 3.3.10.4 | 0.10.2 |
x86 | darwin | 10 | 3.3.10.4 | 0.10.2 |
x86 | darwin | 11 | 3.3.10.4 | 0.10.2 |
x86 | linux | ------- | 3.3.10.4 | 0.10.2 |
x86 | freebsd | 9 | 3.11.8.3 | 0.11.0 |
x86_64 | darwin | 10 | 3.11.8.3 | 0.11.0 |
x86_64 | darwin | 11 | 3.3.10.4 | 0.10.2 |
x86_64 | darwin | 12 | 3.11.8.3 | 0.11.0 |
x86_64 | darwin | 13 | 3.16.14.3 | 0.12.1 |
x86_64 | darwin | 14 | 3.16.14.7 | 0.12.1 |
x86_64 | linux | ------- | 3.11.8.3 | 0.11.0 |
私の場合はOSのバージョンがx86_64-darwin-14
だったので,libv8は3.16.14.7のバージョンでtherubyracerは0.12.1のバージョンを選択します.
自分のインストールすべきバージョンが分かったので,次はそのバージョンでインストールをします.
その時にあるオプションも書きます.それが--with-system-v8
と--with-v8-dir
です.
そのオプションも含めたインストール時のコマンドを下に挙げておきます.
$ gem install libv8 -v '3.16.14.7' -- --with-system-v8
$ gem install therubyracer -v '0.12.1' -- --with-v8-dir
これで無事にインストールできると思います!
ただ,それぞれのオプションにどういう意味があるのかを調べていないので調べないといけませんね...