RoadMovie

write down memos or something I found about tech things

bundle installでmysql2(5.7)のインストールに失敗する問題

mac OS MojaveでRails開発中に gem install mysql2 がなかなか成功しなかったのでメモ。

Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
...
ld: library not found for -lssl

みたいなログが出てます。まずは、opensslがインストールされているか確認します。

$ brew install openssl

インストール済みであれば、あとはここへのpathをうまく通すだけです。ちなみに $ brew reinstall openssl をやると、最後の方に注意書きでこういうふうにexportしなさいという記述があります。

アプリroot directoryで、下記コマンドを実行し、

$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl/include"

さらに、コンソール上で

$ export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/

最後に bundle install しましょう。


ちなみに、ldflagsとcppflagsのオプションを両方つけると下記のようなエラーが出てしまうので注意。

clang: error: unsupported option '--with-cppflags=-I/usr/local/opt/openssl/include'

現在使用中のオプションは、アプリroot directoryで下記のコマンドを打てば確認できます。

$ cat .bundle/config