您的Ruby版本是2.6.0,但您的Gemfile指定了2.5.0



执行捆绑包时遇到问题。我的项目使用2.5.0,但每次我使用ruby -v时,它都会给我ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

我使用rbenv,我的rbenv local2.5.0rbenv global2.5.0

每次执行Bundle都会给我一个错误Your Ruby version is 2.6.0, but your Gemfile specified 2.5.0

我试过gem install bundler,但它不能解决问题。

source 'http://rubygems.org'
ruby '2.5.0'
gem 'rails', '5.0'

我的.ruby版本也是2.5.0

运行

gem install bundler
or
gem update bundler 

这可能会解决你的问题。

我使用的是macOS,并通过首先使用rvm安装所需的ruby版本(在我的案例中为2.5.7)来解决这个问题。

循序渐进:

  • 从rvm.io安装rvm-rvm版本可能需要:
rvm get head
  • 将rvm添加到shell配置中,例如~/.bash_profile
PATH=$PATH:$HOME/.rvm/bin
source /Users/<YOUR_USER_NAME>/.rvm/scripts/rvm
  • 使用rvm安装新的Ruby版本:
rvm install ruby-2.5.7
  • 设置当前/默认版本:
rvm use ruby-2.5.7 --default
  • 修改您的Gemfile以使用新的Ruby版本。例如:
ruby '2.5.7'
  • 刷新当前基于的Ruby版本/Gemfile通过运行:
rvm reload
  • 安装新版本后,从项目目录执行以下操作:
gem install bundler
bundle update

删除Gemfile.lock并尝试使用正确版本的ruby并运行bundle install

如果您正在使用zsh,请通过运行打开您的.zshrc

nano ~/.zshrc

然后将这些行添加到文件

export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"

然后运行

source ~/.zshrc

我尝试了rbenv,rvm和Nothing对我有效(我使用的是macM1芯片。shell是Zsh)。

但asdf最终起了作用。

  1. 我使用brew install asdf安装了asdf
  2. 使用以下内容将其添加到PATHcd ~,然后是nano .zshrc,键入或粘贴export PATH="$HOME/.asdf/shims:$PATH"并通过按ctrl + X将其保存到文件中,然后按键盘上的Y,再按enter
  3. 使用asdf plugin add ruby继续下载asdf的ruby插件
  4. 然后继续下载我的错误中提示的ruby消息,2.6.10使用asdf install ruby 2.6.10
  5. 使用asdf global ruby 2.6.10将全局ruby设置为2.6.10(如果只想在本地设置,请将"global"更改为"local")
  6. 关闭终端并重新启动
  7. 为了检查活动的ruby,我做了asdf current ruby给了我2.6.10
  8. ruby -v也给了我2.6.10。请注意,这是它第一次告诉我,到目前为止,即使在使用rbenv和rvm进行了48小时的故障排除后,它也给了我完全不同的东西

到目前为止,错误消息应该已清除。但如果它持续下去(这不应该)。然后在项目根目录中创建一个.tool-versions文件,其中包含我们刚刚安装的ruby版本的文本,例如ruby 2.6.10

我希望这能帮助互联网另一端的人祝你好运PS,我卸载了我的rbenv

如果您使用的是VS代码,那么在Gemfile中,您可以更改指定版本的Ruby。我刚遇到这个问题,当我把Ruby的版本改成我现在的版本时,它就解决了。希望这能帮助到任何有同样问题的人。

相关内容

  • 没有找到相关文章