gem install mysql2 で -lssl 系のエラーが出たら

備忘録。

macOS Mojave 10.14.5 / Catalina 10.15.x で bundle install すると mysql2 あたりで失敗する。
以下 issue と似たような状況。

ERROR:  Error installing mysql2:
   ERROR: Failed to build gem native extension.
...
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1

make failed, exit code 2

OpenSSL 周りのローカル設定に問題あるという意味なので同じ issue にあるコメントどおりにすると解決する。

brew install openssl
bundle config --global build.mysql2 --with-opt-dir="$(brew --prefix openssl)"
bundle install

OpenSSL がどう絡むのか詳細はこちらの記事が参考になる。

まず、ldはGNUリンカーと呼ばれるコマンドです
続いて、-lsslとは、mysql2 gemインストール時にldコマンドに与えられたオプションの一つです。
つまり、mysql2 gemはlibssl.dylibをライブラリ検索範囲から探してね、と指示している訳です。

読んでいただきありがとうございますー よろしければシェアもおねがいします🙏