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

Mac M1(macOS 12)下bundle install提示Ruby版本不匹配问题求助

解决Mac M1上Bundler识别Ruby版本错误的问题

我之前碰到过好几例M1 Mac上RVM和Bundler版本不匹配的问题,你的情况大概率是系统自带Ruby的Bundler优先级盖过了RVM管理的版本,或者RVM的环境没有正确加载到当前Shell里。给你一步步排查解决的方法:

第一步:确认当前Shell的环境变量

先搞清楚你的bundle命令到底指向哪个版本的Ruby:

which bundle
echo $PATH

如果输出的bundle路径是/usr/bin/bundle,那说明你用的是macOS 12自带的Ruby 2.6.8对应的Bundler,而不是RVM管理的Ruby 2.0.0版本的Bundler。

第二步:重新加载RVM并绑定默认版本

  1. 先刷新RVM的环境配置:
source ~/.rvm/scripts/rvm
  1. 重新切换到目标Ruby版本并设为默认:
rvm use 2.0.0-p598 --default
  1. 再次检查ruby和bundle的路径:
which ruby
which bundle

正常情况下,这两个命令的输出应该都以~/.rvm/rubies/ruby-2.0.0-p598/bin/或者~/.rvm/gems/ruby-2.0.0-p598/bin/开头。

第三步:安装适配Ruby 2.0.0的Bundler版本

Ruby 2.0.0比较老旧,不兼容高版本的Bundler,所以需要安装对应版本:

  1. 先卸载可能关联到系统Ruby的Bundler(如果有多个版本,选择路径为/usr/bin/bundle的那个):
gem uninstall bundler
  1. 在RVM的2.0.0环境下安装兼容的Bundler版本:
gem install bundler -v 1.17.3

这个版本是Ruby 2.0.0能稳定运行的最高Bundler版本。

第四步:检查Shell配置文件(针对M1默认的Zsh)

确保RVM的初始化代码已经添加到你的Shell配置文件里(比如~/.zshrc):

  1. 打开配置文件:
open ~/.zshrc
  1. 确认里面有这一行代码,如果没有就加上:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
  1. 保存后重启Terminal,重新切换Ruby版本。

第五步:注意M1的Rosetta架构问题

Ruby 2.0.0是x86架构的,你需要确保Terminal是通过Rosetta运行的:

  1. 找到Launchpad里的Terminal,右键点击→显示简介
  2. 勾选“使用Rosetta打开”,然后重启Terminal
  3. 重新执行rvm use 2.0.0-p598和bundle install

完成以上步骤后,再执行bundle install应该就能正常识别到Ruby 2.0.0版本了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 06:51:19