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

Apple Silicon M2上安装ffi 1.11.1失败求助

解决Ruby 2.3.6安装ffi 1.11.1原生扩展编译失败问题

针对你在macOS Sonoma(Darwin23)下使用Ruby 2.3.6安装ffi 1.11.1时的编译错误,以下是几个针对性的解决方案:

方案一:指定兼容的旧版libffi编译

新版本libffi与Ruby 2.3.6兼容性差,可安装旧版libffi并指定编译路径:

# 安装3.3版本的libffi(与Ruby 2.3.6适配性更好)
brew install libffi@3.3
# 设置环境变量,让gem编译时指向旧版libffi
export PKG_CONFIG_PATH="/usr/local/opt/libffi@3.3/lib/pkgconfig"
export LDFLAGS="-L/usr/local/opt/libffi@3.3/lib"
export CPPFLAGS="-I/usr/local/opt/libffi@3.3/include"
# 重新执行gem安装命令
gem install ffi -v '1.11.1'

方案二:重新编译Ruby 2.3.6并关联旧版libffi

老版本Ruby在新系统上编译时可能未正确链接系统库,重新编译Ruby并指定libffi路径:

# 先设置libffi环境变量(同方案一)
export PKG_CONFIG_PATH="/usr/local/opt/libffi@3.3/lib/pkgconfig"
export LDFLAGS="-L/usr/local/opt/libffi@3.3/lib"
export CPPFLAGS="-I/usr/local/opt/libffi@3.3/include"
# 以rbenv为例,重新安装Ruby 2.3.6
rbenv install 2.3.6p384
# 切换到重新编译后的Ruby版本
rbenv global 2.3.6p384
# 再次尝试安装ffi
gem install ffi -v '1.11.1'

方案三:降级Command Line Tools版本

macOS Sonoma自带的Command Line Tools版本过高,与Ruby 2.3.6的编译逻辑不兼容,可降级到适配的旧版本:

  1. 下载适配macOS Sonoma的Xcode 14.3.1 Command Line Tools
  2. 安装后切换CLT版本:
sudo xcode-select --switch /Library/Developer/CommandLineTools
  1. 执行gem安装命令尝试安装ffi

补充说明

Ruby 2.3.6是2017年发布的旧版本,与2023年的macOS Sonoma存在较大的系统环境差异,上述方案核心都是通过适配旧版依赖或编译器,来消除新系统与老Ruby版本的兼容性冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 04:06:13