環境
Mac OS X 10.11.3(El Capitan)
bundler 1.11.2
gem 2.4.5
rails 4.2.1
El CapitanにUpgrade後 bundle install / bundle exec rails console が動かない...
僕の場合は以下のgemが大きな原因でした.
- libv8
- spring
# 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
また, libv8のコンパイルに以下のパッケージが必要です. 後にbrewでインストールします.
- apple-gcc42
bundle install 中にlibv8のインストールに失敗する
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
bundle exec rails consoleに失敗する
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に失敗する問題の解決方法