M1 Macでmysql2インストール時のエラー対応

1912 ワード

M1 MacでMySQLのインストールでコケるので対応をまとめておきます

環境

  • Apple M1 Pro
  • Ruby 3.1.1
  • Rails 7.0.2.3
$ rails new hoge -d mysql

An error occurred while installing mysql2 (0.5.3), and Bundler cannot
continue.

In Gemfile:
  mysql2
         run  bundle binstubs bundler
Could not find gem 'mysql2 (~> 0.5)' in locally installed gems.

OpenSSLに変更

$ openssl version
LibreSSL 2.8.3

OpenSSLと表示されるようであればスキップ

$ brew install openssl@3
$ brew link --force openssl@3
Linking /opt/homebrew/Cellar/openssl@3/3.0.2... 5494 symlinks created.

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc

$ echo 'export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc

bundle configのパスを変更

$ bundle config --local build.mysql2 "--with-ldflags=-L/opt/homebrew/opt/openssl@3/lib"

ライブラリのパスを変更

$ unset LIBRARY_PATH
$ export LIBRARY_PATH=:/opt/homebrew/Cellar/zstd/1.5.2/lib:/opt/homebrew/Cellar/openssl@3/3.1.1/lib/:/opt/homebrew/Cellar/zstd/1.5.2/lib:/opt/homebrew/Cellar/openssl@3/3.1.1/lib/

これで解決!
docker上ではコケないのにローカルでコケて困ってたから解決できてよかった

参考