You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Ventura下bundle install mysql2遇-lzlib库未找到错误求助

解决bundle install安装mysql2 gem时ld: library not found for -lzlib的问题

问题场景

在Ventura(13.3.1)系统下,执行bundle install安装mysql2 0.5.5 gem时,编译原生扩展的链接阶段报错:ld: library not found for -lzlib。已尝试安装zlib并配置环境变量、重新安装Xcode命令行工具等方法,问题未解决。

本地环境:

  • OS: Ventura(13.3.1)
  • Xcode: 14.3
  • ruby: 3.1.4
  • rails: 6.1
  • mysql2: 0.5.5

可行解决方案

1. 直接给mysql2指定编译参数(优先尝试)

绕过环境变量的潜在问题,直接在bundle配置中指定mysql2编译所需的zlib和openssl路径:

# 配置mysql2的编译参数
bundle config set --local build.mysql2 "--with-zlib-dir=$(brew --prefix zlib) --with-opt-dir=$(brew --prefix openssl@3)"
# 重新执行bundle install
bundle install

如果后续需要重置该配置,执行:

bundle config unset --local build.mysql2

2. 重新安装mysql并关联brew的zlib

若mysql本身未正确链接zlib库,可尝试重装mysql:

brew uninstall mysql
brew install mysql

若问题仍存在,强制重装确保依赖正确:

brew reinstall mysql --force

3. 切换Xcode开发者目录

部分情况下,单独的命令行工具与Xcode自带的开发者工具可能存在库路径冲突,切换到Xcode自带的目录:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
xcodebuild -runFirstLaunch

执行完成后再重新尝试bundle install。

4. 指定架构编译(适用于M系列芯片Mac)

如果是arm64架构的M系列Mac,需明确指定编译架构:

bundle config set --local build.mysql2 "--with-zlib-dir=$(brew --prefix zlib) --with-opt-dir=$(brew --prefix openssl@3) --arch arm64"
bundle install

内容的提问来源于stack exchange,提问作者qounme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:35:13