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

Mac(Monterey)安装Ruby用于Github Pages编译失败求助

解决macOS 12.7上Ruby 3.1.3编译时的_coroutine_transfer链接错误

针对你在2015款Intel MacBook Pro(macOS 12.7)上安装Ruby 3.1.3遇到的链接错误,以下是几个可行的解决方案:

1. 强制链接系统libunwind库

编译Ruby时指定系统libunwind的路径,这个库包含缺失的_coroutine_transfer符号:

  • 使用rbenv安装:
    RUBY_CONFIGURE_OPTS="--with-libunwind-dir=/usr" rbenv install 3.1.3
    
  • 使用ruby-install安装:
    ruby-install 3.1.3 -- --with-libunwind-dir=/usr
    

2. 补全依赖库后重新编译

先更新Homebrew并安装Ruby编译所需的依赖包:

brew update
brew install openssl@1.1 readline libyaml libffi

再通过指定依赖路径安装Ruby:

RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1) --with-readline-dir=$(brew --prefix readline) --with-libyaml-dir=$(brew --prefix libyaml) --with-libffi-dir=$(brew --prefix libffi) --with-libunwind-dir=/usr" rbenv install 3.1.3

3. 尝试Ruby 3.1系列的更新版本

Ruby 3.1.3存在部分macOS编译兼容性问题,升级到同系列的修复版本(如3.1.5)可能直接解决问题:

rbenv install 3.1.5

4. 清空干扰性编译环境变量

如果你的环境中设置了CFLAGS或LDFLAGS等可能干扰编译的变量,临时清空后再尝试安装:

CFLAGS="" LDFLAGS="" rbenv install 3.1.3

错误原因说明

_coroutine_transfer是Ruby Fiber协程实现依赖的libunwind库函数,在macOS 12.7的命令行工具环境下,编译器默认可能未正确链接系统libunwind库,通过显式指定路径可以修复符号缺失问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:32:41