执行捆绑包时遇到问题。我的项目使用2.5.0,但每次我使用ruby -v
时,它都会给我ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
我使用rbenv,我的rbenv local
是2.5.0
,rbenv global
是2.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最终起了作用。
- 我使用
brew install asdf
安装了asdf - 使用以下内容将其添加到PATH
cd ~
,然后是nano .zshrc
,键入或粘贴export PATH="$HOME/.asdf/shims:$PATH"
并通过按ctrl + X
将其保存到文件中,然后按键盘上的Y
,再按enter
- 使用
asdf plugin add ruby
继续下载asdf的ruby插件 - 然后继续下载我的错误中提示的ruby消息,2.6.10使用
asdf install ruby 2.6.10
- 使用
asdf global ruby 2.6.10
将全局ruby设置为2.6.10(如果只想在本地设置,请将"global"更改为"local") - 关闭终端并重新启动
- 为了检查活动的ruby,我做了
asdf current ruby
给了我2.6.10 ruby -v
也给了我2.6.10。请注意,这是它第一次告诉我,到目前为止,即使在使用rbenv和rvm进行了48小时的故障排除后,它也给了我完全不同的东西
到目前为止,错误消息应该已清除。但如果它持续下去(这不应该)。然后在项目根目录中创建一个.tool-versions
文件,其中包含我们刚刚安装的ruby版本的文本,例如ruby 2.6.10
我希望这能帮助互联网另一端的人祝你好运PS,我卸载了我的rbenv
如果您使用的是VS代码,那么在Gemfile中,您可以更改指定版本的Ruby。我刚遇到这个问题,当我把Ruby的版本改成我现在的版本时,它就解决了。希望这能帮助到任何有同样问题的人。