我有一个冲突的依赖:
Gem A depends on Gem B 2.0
但是
Gem C depends on Gem B 1.5
我应该这样强迫:
gem 'B', '~> 1.5'
我的所有其他宝石都使用Gem B 2.5(后期版本)没有问题,所以我可以在我的Gemfile中做这样的事情吗?:
gem 'B' # 2.5
gem 'A', dependency: 'b 2.0'
gem 'C', dependency: 'b 1.5'
# gems happily use B 2.5
更新,我的确切问题:
rails-observers(>=0) ruby
activemodel(~> 4.0)
jquery-scrollto-rails(>=) ruby
activemodel(~> 3.1.0)
我的gemfile根本没有包含任何依赖项。没有版本号选项。
bundle install
完成没问题但是
bundle update
导致上面的错误
答案 0 :(得分:0)
在github上fork jquery-scrollto-rails并升级版本。运行它的测试套件。如果它运行了一个pull请求,直到它被接受,请使用你的github版本。
如果它没有运行,那么 -
不要抱怨,修复;)
修改强>
他们有一个更新版本支持铁路3<五 将其添加到您的Gemfile
gem 'jquery-scrollto-rails', '~> 1.4.3'
然后运行$ bundle install
请参阅rubygems
注意:强>
我建议您始终在Gemfile中使用版本规范。最乐观的策略就是将它们固定到次要版本,例如gem 'jquery-scrollto-rails', '~> 1.4'
。这对bundler来说是一个巨大的帮助,它有一个np-complete问题需要解决。理论上,根据Semver,对次要版本更新不应有任何不兼容的更改,您可以通过运行$ bundle update
来解决问题。很多宝石确实遵循这个惯例,但有黑色的