修复您的 Ruby 版本是 2.6.8,但您的 gemfile 指定为 2.5.5

mra*_*teb 7 ruby bundle ruby-on-rails bundler rbenv

在我正在使用的本地计算机上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
Run Code Online (Sandbox Code Playgroud)

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

  system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/normal/.ruby-version)
Run Code Online (Sandbox Code Playgroud)

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

/Users/Mahmoud/.rbenv/shims/ruby
Run Code Online (Sandbox Code Playgroud)

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

ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin21]
Run Code Online (Sandbox Code Playgroud)

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

bundle uninstallgem uninstall bundler -v 1.17.2 但似乎没有任何作用。

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

/usr/local/bin/bundle
Run Code Online (Sandbox Code Playgroud)

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

mra*_*teb 24

终于成功了。

因此,问题和解决方案的关键在于which bundle

/usr/local/bin/bundle
Run Code Online (Sandbox Code Playgroud)

而红宝石给出了:

/Users/Mahmoud/.rbenv/shims/ruby
Run Code Online (Sandbox Code Playgroud)

表明该包没有使用 rbenv 中的 ruby​​。

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

export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)

但显然这还不够,因为我正在使用 zsh。还必须添加相同的两行~/.zshrc并重新启动终端。现在捆绑安装正在按预期工作。

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

/Users/Mahmoud/.rbenv/shims/bundle
Run Code Online (Sandbox Code Playgroud)

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

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