当尝试运行“捆绑安装”时,我收到此消息:
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
我在RVM中使用ruby 2.5.1。
您知道怎么做吗?
我了解到我可以使用bundle config set,但是它什么也没做。
答案 0 :(得分:1)
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
。
答案 1 :(得分:1)
您需要手动删除有问题的红宝石版本上的目录:例如,如果2.5.1红宝石版本存在捆绑程序问题,请转到以下路径:
/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答案重新安装特定版本的捆绑器