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

ARM-64架构MacOS下Ruby 3.1.1编译构建失败求助

解决ARM64 macOS编译Ruby 3.1.1的架构不兼容问题

问题核心

你的报错本质是两个关键问题:

  1. Ruby 3.1.1仅兼容OpenSSL 1.1.x版本,而当前brew默认安装的是OpenSSL 3.x,导致代码编译时出现struct X509_crl_st定义缺失的错误;
  2. 你配置的libffi路径指向了x86_64架构的/usr/local目录(Rosetta 2下的brew路径),而ARM64 macOS的原生brew路径是/opt/homebrew,导致链接时出现架构不匹配的警告。

解决步骤

1. 清理x86架构依赖并安装ARM版兼容组件

先卸载x86版本的libffi和OpenSSL,再用ARM原生brew安装Ruby 3.1.1需要的适配版本:

# 通过Rosetta卸载x86架构的依赖
arch -x86_64 brew uninstall --force libffi openssl

# 安装ARM版的OpenSSL 1.1和libffi(原生ARM brew)
brew install openssl@1.1 libffi

2. 修正环境变量配置

打开~/.zshrc,替换原有相关配置为以下内容(指向ARM原生brew的依赖路径):

export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/libffi/lib -L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/libffi/include -I/opt/homebrew/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/libffi/lib/pkgconfig:/opt/homebrew/opt/openssl@1.1/lib/pkgconfig"

执行命令使配置生效:

source ~/.zshrc

3. 重新编译安装Ruby 3.1.1

根据你使用的版本管理工具选择对应命令:

  • 使用rbenv:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" rbenv install 3.1.1
  • 使用rvm:
rvm reinstall 3.1.1 --with-openssl-dir=$(brew --prefix openssl@1.1)

4. 验证安装结果

安装完成后,执行以下命令确认Ruby版本和架构适配:

ruby -v
# 预期输出:ruby 3.1.1p18 (2022-02-18 revision 53f5fc4236) [arm64-darwin2x.x]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:20:09