修复你的 Ruby 版本是 2.6.8,但是你的 gemfile 指定了 2.5.5

Fix Your Ruby version is 2.6.8, but your gemfile specified 2.5.5

在我的本地机器上,我正在使用 rbenv

当我 运行 bundle install 我得到:

The git source `git://github.com/sinatra/sinatra.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
Following files may not be writable, so sudo is needed:
  /Library/Ruby/Gems/2.6.0
  /Library/Ruby/Gems/2.6.0/build_info
  /Library/Ruby/Gems/2.6.0/cache
  /Library/Ruby/Gems/2.6.0/doc
  /Library/Ruby/Gems/2.6.0/extensions
  /Library/Ruby/Gems/2.6.0/gems
  /Library/Ruby/Gems/2.6.0/specifications
Your Ruby version is 2.6.8, but your Gemfile specified 2.5.5

问题是,当我 运行 rbenv 版本时,我得到正确的版本 (2.5.5):

  system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/normal/.ruby-version)

当我 运行 which ruby 时,它正确地指向 rbenv:

/Users/Mahmoud/.rbenv/shims/ruby

甚至 ruby -v 给出了正确的版本:

ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin21]

据推测,2.5.5 是我拥有的唯一版本。 除此之外,我尝试了所有与捆绑器相关的常用技巧:

bundle uninstall,gem uninstall bundler -v 1.17.2 但似乎没有任何效果。

另一个我认为给出提示的“有趣”事实which bundle给出:

/usr/local/bin/bundle

我的问题是这个 2.6.8 是从哪里来的?我该如何解决这个问题并启动服务器?

终于成功了。

所以问题和解决方案的关键在于 which bundle 给出了:

/usr/local/bin/bundle

而 ruby 给出了:

/Users/Mahmoud/.rbenv/shims/ruby

表明该包未使用来自 rbenv 的 ruby。

我已经在~/.bash_profile中设置了路径:

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

但显然这还不够,因为我使用的是 zsh。还必须将那些相同的 2 行添加到 ~/.zshrc 并重新启动终端。现在 bundle install 正在按预期工作。

更新后 ~/.zshrc which bundle 给出:

/Users/Mahmoud/.rbenv/shims/bundle

表明问题只是捆绑使用了错误的 ruby。

因此,如果您遇到此问题,只需通过添加上面指示的两行来确保 ~/.bash_profile~/.zshrc 具有正确的路径。重新启动终端并检查它现在是否工作。