Bundler:有没有办法设置版本?

Bundler : Is there a way to set the version?

尝试 运行 'bundle install' 时,我收到此消息:

Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 5.0.2) was resolved to 5.0.2, which depends on
      bundler (>= 1.3.0, < 2.0)
  Current Bundler version:
    bundler (2.1.2)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Could not find gem 'bundler (>= 1.3.0, < 2.0)', which is required by gem 'rails (= 5.0.2)', in any of the sources.
Bundler could not find compatible versions for gem "pg":
  In Gemfile:
    pg (= 0.18.3)
    jsonb_accessor (~> 1.0.0) was resolved to 1.0.0, which depends on
      pg (>= 0.18.1)

然后,我想我需要更改我的捆绑程序版本为什么是 2.1.2,我想更改为 1.17.3。

gem list 命令表示:

bundler (default 1.17.3)

但是 bundle -v 命令说:

Bundler version 2.1.2

我正在使用 ruby 2.5.1 和 RVM。

你知道怎么做吗?

我读到我可以使用 bundle config set 但它什么也没做。

Bundler 安装一个二进制文件,在读取 Gemfile 之前调用该二进制文件,因此您需要删除正在使用的版本并安装所需的版本。

您可以使用 RVM 执行以下操作:

rvm @global do gem uninstall bundler -a -x -I || true
gem install bundler -v '= 1.17.3'

如果您在项目之间跳转,您可能需要经常这样做,或者您可以这样做:

gem install bundler -v '= 1.17.3'

而不是使用 bundle install,使用:

bundle _1.17.3_ install

指定捆绑器的版本 gem 被使用。

我建议您考虑升级 Rails,不仅是为了获得受支持的版本(具有安全更新),而且还允许您再次升级 bundler

您需要手动删除有问题的 ruby 版本上的目录:例如,如果 2.5.1 ruby 版本存在捆绑程序问题,请转到此路径:

/Users/YOUR_USER/.rvm/rubies/ruby-2.5.1/lib/ruby/gems/2.5.0/gems/

并删除捆绑目录。

如果捆绑器在默认规范中,您还需要删除此路径上的捆绑器关联文件:

/Users/YOUR_USER/.rvm/rubies/ruby-2.5.1/lib/ruby/gems/2.5.0/specifications/default

然后您可以使用@Unixmonkey 回答重新安装特定版本的捆绑器