-
Notifications
You must be signed in to change notification settings - Fork 8
El Capitanで bundle install および bundle exec rails consoleがうまく動かない時の対処法
ShuzoN edited this page Aug 4, 2016
·
5 revisions
Mac OS X 10.11.3(El Capitan)
bundler 1.11.2
gem 2.4.5
rails 4.2.1
僕の場合は以下のgemが大きな原因でした.
- libv8
- spring
- nokogiri
# Gemとバージョン
# 障害時
libv8 3.16.14.7
therubyracer 0.12.2
spring 1.3.3
-------------------------
# 修正後
libv8 3.16.14.13
therubyracer 0.12.2
spring 1.6.4
nokogiriは以下のコマンドを実行することでinstallに成功しました.
$ bundle config build.nokogiri --use-system-libraries
また, libv8のコンパイルに以下のパッケージが必要です. 後にbrewでインストールします.
- apple-gcc42
- v8-315
インストール後,下記を実行します
- bundle config build.therubyracer --with-v8-dir=/usr/local/opt/v8-315
- bundle config build.libv8 --with-system-v8
libv8 : javascriptエンジンのライブラリ
therubyracer : javascriptのrubyラッパ
bundle install
中にlibv8
で失敗する場合は,
libv8
のバージョンが原因です.
libv8
は**OSのバージョンに依存する**ため, 使用するOSのバージョンに合わせてバージョン指定する必要があります(El Capitanはdarwin15).
El Capitanの場合, libv8 '3.16.14.11'
以上にupdateすることで正常に動作します.
therubyracer
は'0.12.2'
を使用してください.
私の場合, libv8 '3.16.14.7'
を使用していたため, bundler install
が動いていませんでした.
## GemfileとGemfile.lockを変更
--------------------------
# Gemfile
gem libv8, '3.16.14.13'
gem therubyracer, '0.12.2'
--------------------------
# Gemfile.lock
libv8(3.16.14.13)
therubyracer(0.12.2)
--------------------------
## terminal
# libv8のコンパイルに必要なgccを入れる
$ brew install homebrew/dupes/apple-gcc42
# gemのインストール
$ bundle install --path vendor/bundle --jobs=10
Springのバージョンが原因でした. Springとは, 開発の高速化を目的としたRailsアプリのプリローダです.
bundler 1.11.0
に加えられた変更で, springがうまく起動せずコケてしまうようです(詳細).
springのバージョンを'1.6.3以上'
に上げることで回避できます.
## GemfileとGemfile.lockを変更
# 16/3/8時点, 1.6.4が最新
# Gemfile
gem 'spring', '1.6.4'
# Gemfile.lock
spring(1.6.4)
## terminal
$ bundle install --path vendor/bundle --jobs=10
$ bundle exec rails c
もし, うまく動かない場合はspring
を再起動します.
$ bundle exec spring stop
$ bundle exec rails c
参考記事 以下のqiita記事を参考にさせていただきました. Yosemiteでlibv8をインストールする.
OS X El Capitanでlibv8 / therubyracerのbundle installに失敗する問題の解決方法