MacOS Ventura下Ruby 3.1.2启动Rails服务触发总线错误求助
Rails服务启动触发Ruby Bus Error崩溃解决方案
环境信息
- 系统:MacOS Ventura 13.2.1
- Ruby版本:ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin22]
- 触发场景:启动Rails本地服务
rails s时抛出错误:
/Users/emmanuelleducolombier/.rbenv/versions/3.1.2/lib/ruby/3.1.0/socket.rb:227: [BUG] Bus Error at 0x000000010add5a98
已尝试操作(无效)
- 通过rbenv重装Ruby 3.1.2,
rbenv install -l列表中无该版本但仍可安装,问题未解决 - 删除ffi库缓存及配置文件后重装依赖,问题依旧
可行解决方案
方案1:切换到Ruby 3.1系列维护版本(推荐)
Ruby 3.1.2存在与MacOS Ventura兼容的socket模块bug,后续维护版本已修复,建议升级到3.1.4:
- 更新rbenv的ruby-build插件,获取最新版本列表:
cd ~/.rbenv/plugins/ruby-build && git pull - 安装Ruby 3.1.4:
rbenv install 3.1.4 - 在项目目录切换Ruby版本:
rbenv local 3.1.4 - 重新安装项目依赖:
bundle install - 启动Rails服务验证:
rails s
方案2:重新编译Ruby 3.1.2适配Ventura
若必须使用3.1.2,尝试用clang重新编译:
- 卸载现有Ruby 3.1.2:
rbenv uninstall 3.1.2 - 设置编译环境变量:
export CC=clang - 重新安装Ruby 3.1.2:
rbenv install 3.1.2 - 重启服务测试
方案3:检查架构兼容性(M系列芯片用户)
若使用Apple Silicon芯片,当前Ruby版本为x86_64架构(依赖Rosetta),可尝试安装arm64版本的Ruby 3.1.2:
- 确保终端未使用Rosetta打开(右键终端-显示简介,取消"使用Rosetta打开")
- 重新执行卸载、安装步骤:
rbenv uninstall 3.1.2 rbenv install 3.1.2
内容的提问来源于stack exchange,提问作者Chonade
相关产品推荐
相关产品推荐

