无法在 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的主要内容,如果未能解决你的问题,请参考以下文章

Macbook m1 Big Sur 安装php7.1 xdebug 折腾记

Cocoapods 无法在新的 m1 mac Big Sur Xcode 上运行

我的鱼瞎了? (在 Mac OS Big Sur、M1 Mac 上将其设置为默认 shell 后,fish 无法识别任何命令)

Xdebug MacOS Big Sur M1(ARM)

Big Sur 更新 11.3 版后 MacBook Pro 错误 Xampp 不起作用

OmniFocus Pro 3 for Mac(最强GTD时间管理工具)支持big sur支持m1