[Rails] mysql2が `ld: library not found for -lzstd` で止まる場合の最終的解消方法
どこにもちゃんとした解決方法がなかったので記載する。
確認した環境
OS: MacOS Monterey(M1 mac, Intel Mac)
Ruby: 2.6.6
Rails: 2.5.2
エラー内容
$ bundle
・・・・・・・・・
34 warnings generated.
linking shared-object mysql2/mysql2.bundle
ld: library not found for -lzstd
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mysql2.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/taichi/.anyenv/envs/rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/gems/mysql2-0.5.3 for inspection.
Results logged to
/Users/taichi/.anyenv/envs/rbenv/versions/2.6.6/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-21/2.6.0/mysql2-0.5.3/gem_make.out
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.
In Gemfile:
mysql2
解消方法
openssl@3とzstdをインストールする
$ brew install openssl@3 zstd
openssl@3のパスを通す
$ brew link --force openssl@3
LIBRARY_PATHにzstdを追加する
$ export LIBRARY_PATH=$LIBRARY_PATH:$(brew --prefix zstd)/lib
ld-flags に openssl@3/libを追加する
$ bundle config --local build.mysql2 "--with-ldflags=-L$(brew --prefix openssl@3)/lib"
ディスカッション
コメント一覧
まだ、コメントがありません