无法在 M1 MacBook Big Sur 中安装 mysql2 0.5.3

San*_*yal 9 ruby mysql ruby-on-rails

您好,我正在尝试在 MacBook M1 Big Sur 中安装 mysql2 gem,但出现以下错误。

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
Run Code Online (Sandbox Code Playgroud)

完全错误

Using mysql_config at /opt/homebrew/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for MYSQL.net.vio in mysql.h... yes
checking for MYSQL.net.pvio in mysql.h... no
checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes
checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes
checking for my_bool in mysql.h... no
-----
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
-----
-----
Setting libpath to /opt/homebrew/Cellar/mysql/8.0.26/lib
-----
creating Makefile

current directory: /Users/santosh/.rvm/gems/ruby-2.6.3/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR=" clean

current directory: /Users/santosh/.rvm/gems/ruby-2.6.3/gems/mysql2-0.5.3/ext/mysql2
make "DESTDIR="
compiling client.c
compiling infile.c
compiling mysql2_ext.c
compiling result.c
compiling statement.c
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/santosh/.rvm/gems/ruby-2.6.3/gems/mysql2-0.5.3 for inspection.
Results logged to /Users/santosh/.rvm/gems/ruby-2.6.3/extensions/-darwin-20/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.
Run Code Online (Sandbox Code Playgroud)

我尝试安装不同版本的 Ruby,但进展不顺利。

小智 19

我也遇到了这个问题,我认为最终解决它的是运行:

gem install mysql2 -v '0.5.3' -- --with-opt-dir=$(brew --prefix openssl) --with-ldflags=-L/opt/homebrew/Cellar/zstd/1.5.0/lib

然而,就其价值而言,我之前安装没有成功,但可能也需要:

  • 自制的,并brew doctor说它是ready to brew
  • Xcode工具xcode-select --install
  • mysql brew install mysql(我可以建立本地连接)
  • 开放式SSLbrew install openssl && brew link openssl --force
  • rbenv 和rbenv rehash
  • cmakebrew install cmake

  • 只是考虑到你必须检查 zstd 版本,在我的例子中它是 1.5.1,所以我的命令是``gem install mysql2 -v '0.5.3' -- --with-opt-dir=$(brew - -prefix openssl) --with-ldflags=-L/opt/homebrew/Cellar/zstd/1.5.1/lib`` (2认同)

Jin*_*Lim 15

苹果 Macbook Air M1。蒙特雷。您需要使用安装 MySQL 和 openssl brew

这对我有用。

gem install mysql2 -- --with-opt-dir=/opt/homebrew/opt/openssl@3 --with-mysql-dir=/opt/homebrew/opt/mysql
Run Code Online (Sandbox Code Playgroud)