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

Posted

技术标签:

【中文标题】无法在 M1 MacBook Big Sur 中安装 mysql2 0.5.3【英文标题】:Couldn't install mysql2 0.5.3 in M1 MacBook Big Sur 【发布时间】:2021-11-07 23:48:13 【问题描述】:

您好,我正在尝试在 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

完全错误

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.

我尝试使用不同版本的 Ruby 进行安装,但没有成功。

【问题讨论】:

***.com/questions/67840691/… 【参考方案1】:

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

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(我可以建立本地连接) openssl brew install openssl && brew link openssl --force rbenv 和rbenv rehash cmake brew 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 呸,你做到了!这太难了哈哈。出于某种原因,我认为 0.5.3 版本也很重要。 这个命令在我的情况下(MacOS Monterrey)单独修复了它!,不同的 zstd 版本,但仍然有效。谢谢楼主! 不幸的是,这对我在使用 BigSur 的 M1 上不起作用。这个***.com/a/68181856/5804379解决了我的具体问题【参考方案2】:

Apple Macbook air M1。蒙特雷。您需要使用 brew 安装 MySQL 和 openssl。

这对我有用。

gem install mysql2 -- --with-opt-dir=/opt/homebrew/opt/openssl@3 --with-mysql-dir=/opt/homebrew/opt/mysql

【讨论】:

以上是关于无法在 M1 MacBook Big Sur 中安装 mysql2 0.5.3的主要内容,如果未能解决你的问题,请参考以下文章