rbenv 没有使用正确的版本

Jam*_*and 1 ruby ruby-on-rails bundler rvm rbenv

在我的 rails 项目中,当我尝试运行时bundle install,出现以下错误:

Your Ruby version is 2.3.7, but your Gemfile specified 2.5.3

但是,当我运行时,ruby --version我得到:

ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]

...跑步rbenv version给了我:

2.5.3 (set by /Users/jamesmulholland/proj/repo-name/.ruby-version)

是什么导致此处使用了错误的 Ruby 版本,我该如何解决?


其他上下文和失败的修复

  • 跑步rbenv versions给出: system 2.5.3 (set by /Users/jamesmulholland/proj/repo-name/.ruby-version)`

  • 这个问题发生在从 Ruby 2.5.1 到 Ruby 2.5.3 的迁移过程中。同时,我从 rvm 转移到了 rbenv。我怀疑我可能在运行时错误地卸载了 rvmrm -rf ~/.rvm而不是rvm implode但它/etc/rbenv/是空的并且运行rvm命令失败。rvm已从我的.zshrc. 当我在使用这种卸载 rvm 的方法后继续遇到此问题时,我重新安装了 rvm 并使用该rvm implode过程进行了卸载,以防还有其他任何导致问题的 rvm 痕迹。这也未能解决问题。

  • 我完全删除了该目录并从 GitHub 中提取了一个新副本。没有成功。
  • 检查旧提交并不能解决错误(我得到了Your Ruby version is 2.3.7, but your Gemfile specified 2.5.1
  • 该应用程序在我同事的计算机上运行良好。
  • 我的 .zshrc 的潜在相关部分(rvm 等效项已注释掉): export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
  • .ruby-version 是 2.5.3
  • Gemfile 包含: source 'https://rubygems.org' ruby "2.5.3"

Die*_*o D 6

试试这个。

在您的 rails 项目文件夹中,检查文件的存在.ruby-version并将其放入 Gemfile 中指定的相同 ruby​​ 版本中。(如果此文件不存在,请创建它。)

~/your-rails-project/.ruby-version文件:

2.5.3
Run Code Online (Sandbox Code Playgroud)

~/your-rails-project/Gemfile文件:

source 'https://rubygems.org'
ruby '2.5.3'
...
Run Code Online (Sandbox Code Playgroud)

然后使用 rbenv 安装该版本:

$ rbenv install 2.5.3
$ rbenv rehash
$ rbenv local 2.5.3
$ rbenv global 2.5.3
Run Code Online (Sandbox Code Playgroud)

现在检查您是否使用了正确的版本:

$ ruby -v
Run Code Online (Sandbox Code Playgroud)