MacOS下React Native环境搭建遇Ruby版本不匹配问题求助
问题场景
- 系统环境:MacOS Monterey 12.6
- 已安装组件:node@16.18.0、npm 8.19.2、Xcode 14.0.1、Homebrew 3.6.7、watchman 2022.10.24.00、Ruby 2.6.8p205、CocoaPods(gem版本3.0.3.1,pod版本1.11.3)
- 操作命令:
npx react-native init AwesomeProject - 报错信息:
Your Ruby version is 2.6.8, but your Gemfile specified 2.7.5
解决办法
方案1:用rbenv管理Ruby版本(推荐)
rbenv是轻量的Ruby版本管理器,能快速切换不同Ruby版本适配项目需求:
- 安装rbenv及ruby-build:
brew install rbenv ruby-build - 初始化rbenv到shell环境:
- 若使用zsh:
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc source ~/.zshrc - 若使用bash:
echo 'eval "$(rbenv init - bash)"' >> ~/.bash_profile source ~/.bash_profile
- 若使用zsh:
- 安装Ruby 2.7.5:
rbenv install 2.7.5 - 设置Ruby版本:
- 全局生效(所有项目默认用2.7.5):
rbenv global 2.7.5 - 仅当前项目生效(进入
AwesomeProject目录后执行):rbenv local 2.7.5
- 全局生效(所有项目默认用2.7.5):
- 验证版本:
确认输出为ruby -vruby 2.7.5p203(或对应版本号)后,重新执行npx react-native init AwesomeProject
方案2:修改项目Gemfile版本要求(临时 workaround)
如果不需要升级Ruby,可直接修改项目的Gemfile匹配当前Ruby版本:
- 报错后进入已生成的
AwesomeProject目录 - 打开
Gemfile文件,找到ruby '2.7.5'行,修改为ruby '2.6.8' - 执行依赖安装:
bundle install - 继续完成React Native项目初始化流程
方案3:调整brew Ruby的PATH优先级
若已通过brew安装Ruby 2.7.5,但系统默认Ruby仍被优先调用:
- 查看当前Ruby路径:
若输出为which ruby/usr/bin/ruby,说明系统Ruby优先级更高 - 安装Ruby 2.7.5(若未安装):
brew install ruby@2.7 - 编辑shell配置文件(/.zshrc或/.bash_profile),添加:
export PATH="/usr/local/opt/ruby@2.7/bin:$PATH" - 刷新配置:
source ~/.zshrc # 对应你的shell配置文件 - 验证版本后重新执行项目初始化命令
内容的提问来源于stack exchange,提问作者Imdadul Haque
相关产品推荐
相关产品推荐

