如何解决报错:Ruby版本2.6.3与Gemfile指定2.7.4不匹配
解决方案
按以下顺序操作即可解决版本不匹配问题:
检查项目本地版本配置
首先进入报错应用的根目录,查找是否存在.ruby-version文件,该文件优先级高于RVM全局默认配置。如果文件存在且内容为2.6.3,直接修改为2.7.4,或删除该文件使用全局默认版本。
修改后执行rvm reload重载配置,执行ruby -v确认当前目录下Ruby版本已切换为2.7.4。重置Bundler关联配置
- 执行
rm Gemfile.lock删除旧的依赖锁文件,避免锁文件中记录的旧Ruby版本干扰 - 执行
rvm use 2.7.4 --default强制当前shell使用指定版本 - 执行
gem install bundler安装对应Ruby版本的Bundler工具 - 执行
bundle install重新安装所有依赖
- 修复PATH优先级问题
执行which ruby查看当前生效的Ruby路径,正常应为~/.rvm/rubies/ruby-2.7.4/bin/ruby类的RVM目录路径。如果输出为系统Ruby路径(如/usr/bin/ruby)或Homebrew安装的Ruby路径,说明RVM未正确加载到PATH最前端:
打开你使用的shell配置文件(.zshrc、.bashrc或.bash_profile),在末尾添加:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
保存后执行source 配置文件路径重载配置,再次执行which ruby确认路径正确。
- 清理后台驻留进程
你项目中启用了Spring加速工具,旧版本启动的Spring进程会一直沿用2.6.3版本,执行spring stop终止所有Spring后台进程,再启动应用即可。
内容的提问来源于stack exchange,提问作者Nahomie nd
相关产品推荐
相关产品推荐

