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

升级到MacOS Sonoma后无法用rbenv安装Ruby 2.1.0求助

解决MacOS Sonoma 14.4.1下rbenv安装Ruby 2.1.0的问题

核心原因

Ruby 2.1.0依赖的openssl-1.0.2u无法在Sonoma默认编译环境下正常构建,主要触发点:

  • 编译时错误识别为i386架构而非x86_64
  • Sonoma的clang默认启用-fno-common选项,导致旧版OpenSSL的符号链接失败

解决方案步骤

1. 设置强制架构及兼容编译参数

在终端执行以下命令,强制编译工具链使用x86_64架构,并添加适配旧代码的编译选项:

export ARCHFLAGS="-arch x86_64"
export CFLAGS="-arch x86_64 -fcommon"
export LDFLAGS="-arch x86_64"

2. 手动指定兼容的OpenSSL路径(二选一)

选项A:通过MacPorts安装旧版OpenSSL

利用已重装的MacPorts环境安装适配的旧版OpenSSL:

sudo port install openssl@1.0

然后指定Ruby编译时调用该OpenSSL路径:

export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(port contents openssl@1.0 | grep -E '/bin$' | head -1 | sed 's|/bin||')"

选项B:手动编译openssl-1.0.2u

如果MacPorts安装失败,直接编译指定架构的OpenSSL:

# 下载源码包
curl -O https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
tar xzf openssl-1.0.2u.tar.gz
cd openssl-1.0.2u

# 配置并编译x86_64版本
./Configure darwin64-x86_64-cc --prefix=/usr/local/openssl-1.0.2u shared
make
sudo make install

# 指定Ruby使用编译好的OpenSSL
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/openssl-1.0.2u"

3. 执行Ruby安装

保持上述环境变量生效的状态,运行rbenv安装命令:

rbenv install 2.1.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:48:14