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

执行heroku local遇bundler加载puma失败的技术求助

解决bundler: failed to load command: puma架构不兼容问题

问题根源

从错误日志可明确判断:Puma的核心二进制文件puma_http11.bundle为x86_64架构,但你的Ruby环境是arm64(M系列芯片),二者架构不兼容导致无法加载。

解决方案

1. 彻底清理现有Puma及编译缓存

  • 卸载所有版本的Puma:
    gem uninstall puma --all
    
  • 强制清理Bundle缓存:
    bundle clean --force
    
  • 删除项目中的Gemfile.lock和vendor目录(若存在):
    rm Gemfile.lock && rm -rf vendor
    

2. 确保在arm64原生环境下重新安装

  • 检查当前终端架构:
    arch
    
    输出应为arm64,若显示x86_64,说明终端开启了Rosetta:右键终端图标 → 「简介」→ 取消勾选「使用Rosetta打开」,重启终端。
  • 重新安装依赖,强制本地编译(避免使用预编译的x86_64二进制包):
    bundle install --no-deployment
    

3. 可选:锁定Puma到兼容Ruby 2.7的版本

Puma 6.x对Ruby 2.7的arm64支持存在兼容性问题,建议降级到稳定兼容版本:
修改Gemfile中的Puma配置:

group :production do
  gem "puma", "~> 5.6"
end

修改后重新执行bundle install。

4. 验证安装结果

检查Puma二进制文件的架构:

file $(bundle show puma)/lib/puma/puma_http11.bundle

输出应包含arm64,确认架构匹配后,再执行:

heroku local

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:35:29