Ruby 版本的捆绑程序冲突要求

Bundler conflict requirements for the Ruby version

我安装了 rbenv 但是当尝试执行这个命令时 bundle install --path vendor/bundle 我收到一个错误。

错误:

  Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.3.7.0)

    github-pages (~> 212) was resolved to 212, which depends on
      jekyll-feed (= 0.15.1) was resolved to 0.15.1, which depends on
        Ruby (>= 2.4.0)

我该如何解决这个问题?

在您的 gemfile 中,您列出了

Ruby (~> 2.3.7.0)
github-pages (~> 212)

github-pages 212依赖于jekyll-feed 0.15.1,需要ruby 2.4.

要使用 github-pages 212,您需要升级到 ruby 2.4+,或者,将 github-pages 降级到同样支持 2.3

如评论中所述,错误是说你有 2 个选项,将 ruby 升级到更高版本或降级 github pages,你提到你正在使用 rbenv 这是对于这种情况非常有用。您需要做的就是升级 ruby 版本。转到您的项目文件夹并打开一个终端,然后您可以执行以下操作:

rbenv install x.y.z,其中 x.y.z 是您要安装的 ruby 版本(例如 2.4.0),之后您需要做的就是指定 ruby你想在那个项目中使用,所以在同一个终端运行:rbenv local x.y.z。就是这样你应该能够 运行 bundle install.

一些注意事项:

  • 记得用正确的 ruby 版本更新您的 gem 文件(升级后)

  • 如果您想在特定路径中安装 gems 并且您正在使用 bundle >= 2(检查 gem 版本:gem 列表| grep bundle),您应该使用配置文件而不是在命令中指定路径。在您的根目录中创建一个 .bundle 文件夹并添加一个名为 config 的文件,然后在该文件中添加路径(例如 BUNDLE_PATH: ./vendor/bundle)