背景
libv8の続きです。Mysqlのgemインストール時に以下のエラーが出ました。
Installing mysql2 0.5.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
環境
項目 | 内容 |
---|---|
OS.Catalina | v10.15.4 |
Ruby | v2.5.1 |
Ruby On Rails | v5.2.4.3 |
MySQL | v5.6 |
内容
対応1)Mysqlのgemを再インストール
CMD>gem uninstall mysql2
Successfully uninstalled mysql2-0.4.10
CMD>gem install mysql2
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
bundle installしても、失敗してしまいます。
対応2)環境変数を設定し、再インストール
以下のコマンドを実行し、環境変数を変更する
CMD>export PATH="/usr/local/opt/mysql@5.6/bin:$PATH"
CMD>export DYLD_LIBRARY_PATH="/usr/local/opt/mysql@5.6/:$DYLD_LIBRARY_PATH"
CMD>export LDFLAGS="-L/usr/local/opt/openssl/lib"
CMD>export CPPFLAGS="-I/usr/local/opt/openssl/include"
環境変数の確認
[\W staff@term]env
(省略)
LDFLAGS=-L/usr/local/opt/openssl/lib
CPPFLAGS=-I/usr/local/opt/openssl/include
→環境変数を変更したのち、同様に「bundle install」してもダメでした。
対応3)結局、こちらもbundlerの設定を変更する
CMD>bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"
これで、やっと「bundle install」が上手くいくようになりました。
参考記事
RailsプロジェクトでMySQLがbundle installできなかった
brew upgrade mysql で v8 がインストールされて rails server が起動しなくなったので v5.7 に戻す
mysql2 インストール時に 「ld: library not found for -limported_openssl」が表示された場合の対応
mysql2 gemインストール時のトラブルシュート