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

在macOS 15.1.1(ARM)用rbenv+OpenSSL安装Ruby3.0.6失败求助

问题:macOS 15.1.1(ARM)下用rbenv搭配OpenSSL 3安装Ruby 3.0.6编译失败

执行的安装命令

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@3" rbenv install 3.0.6

编译错误信息

fatal error: too many errors emitted, stopping now [-ferror-limit=]
compiling new.c
installing default bigdecimal libraries
20 errors generated.
make[2]: *** [bigdecimal.o] Error 1
make[1]: *** [ext/bigdecimal/all] Error 2
make: *** [build-ext] Error 2
external command failed with status 2

同时出现重复库警告:

ld: warning: ignoring duplicate libraries: '-lruby.3.0'

已尝试的操作

  • 更新Xcode CLI工具
    xcode-select --install
    sudo xcodebuild -runFirstLaunch
    
  • 检查并更新Homebrew及依赖
    brew update && brew upgrade
    brew install readline libyaml gmp openssl@3
    
  • 配置编译前编译器参数
    export RUBY_CFLAGS="-Wno-error=implicit-function-declaration -Wno-error=deprecated-non-prototype"
    export LDFLAGS="-L/opt/homebrew/opt/openssl@3/lib"
    export CPPFLAGS="-I/opt/homebrew/opt/openssl@3/include"
    export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig"
    
  • 手动清理残留文件后重新安装
    rbenv uninstall 3.0.6
    rm -rf ~/.rbenv/versions/3.0.6
    rm -rf /var/folders/*/*/*/ruby-build*
    rbenv install 3.0.6
    

系统信息

  • macOS:15.1.1(ARM)
  • 目标Ruby版本:3.0.6
  • rbenv版本:最新版
  • Homebrew OpenSSL版本:3.4.1

额外解决方法

1. 切换到兼容的OpenSSL版本

Ruby 3.0.6发布时,OpenSSL 3.4.1尚未推出,两者可能存在兼容性问题。可以安装更稳定的OpenSSL@1.1版本:

brew install openssl@1.1

然后使用该版本重新执行安装:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@1.1" rbenv install 3.0.6

2. 指定架构编译参数

ARM架构的macOS编译旧版Ruby时,可尝试指定架构参数解决依赖兼容问题:

# 优先尝试ARM原生架构
export ARCHFLAGS="-arch arm64"
# 若仍失败,尝试兼容x86_64架构
# export ARCHFLAGS="-arch x86_64"

执行完上述命令后,再重新运行Ruby安装命令。

3. 更新ruby-build到最新补丁版本

ruby-build可能有针对新版macOS的适配补丁,先更新组件:

brew upgrade ruby-build

如果brew更新后仍无效,手动拉取ruby-build最新源码:

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

之后重新执行Ruby安装命令。

4. 切换到GCC编译器

macOS 15默认的clang版本对旧版Ruby编译支持可能不足,可安装GCC并指定使用:

brew install gcc@12
export CC=gcc-12
export CXX=g++-12

配置完成后重新执行安装命令。

5. 清空冲突环境变量

确保没有多余的环境变量干扰编译,先清空相关变量:

unset CFLAGS LDFLAGS CPPFLAGS PKG_CONFIG_PATH

仅保留OpenSSL路径配置后重新安装:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/homebrew/opt/openssl@3" rbenv install 3.0.6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:52:22