bundle installエラーが出た際、解決まで結構時間がかかってしまったので、まとめて置こうと思います。
#エラー内容
bundle install
//エラー
An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before bundling.
bundle install
//エラー
Could not find gem 'sass-rails (>= 6)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.
#原因
見てみるとどうやらlsslが見つけられないのが原因らしい。
エラーの内容の中にこのエラーがある人はこの記事の方法が役に立つかもしれません。
lsslが見つからないということらしい。
ld: library not found for -lssl
####そもそもldってなに?
ldとは、GNUリンカーと呼ばれるコマンドで、コンパイルされたオブジェクトファイルから実行可能ファイル( またはライブラリ)を作成することができるものです。
####続いて-lsslってなに?
mysql2 gemインストール時にldコマンドに与えられたオプションの一つで、libssl.dylibをライブラリ検索範囲から探してねって言うことらしいです。
#解決
以下のコマンドを実行
bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"
###実行コマンドの意味
実行コマンドが意味不明だったため、後で見てもわかるようにまとめておきます。
-
bundle config
設定システムを編集します。 -
--local build.mysql2
ローカルでmysql2をビルドした際に以下の通りビルドしてください。 -
--with-ldflags=-L/usr/local/opt/openssl/lib
ビルドする際は以下を参照してください。
参照先は-L/usr/local/opt/openssl/libです。
###「今後ローカルでmysql2をインストールする場合は/usr/local/opt/openssl/libの場所を参照してくださいね」
って感じですかね。
#参考記事
ありがとうございました!
【Rails】MySQL2がbundle installできない時の対応方法
mysql2 gemインストール時のトラブルシュート
Ruby STUDIO