Rails Bundle,gems冲突,最佳解决方法是什么?

5
我在使用Bundle解决宝石包冲突时遇到了问题。

无法激活生成器(~> 2.1.2,运行时)为["activemodel-3.0.8","actionpack-3.0.8","railties-3.0.8"],因为生成器-3.0.0已经为["黄瓜-0.10.6"]激活(Gem :: LoadError)

这意味着active*需要builder v 2.1.2,而cucumber想要版本3.0.0。 很容易,但是...
我应该怎么做? 降级黄瓜吗? 我尝试过bundle update,但...似乎最新版本的active model、pack和railties是3.0.8。 我如何轻松知道与active builder兼容的cucumber版本?
那么,一般情况下解决这种情况的通用方法是什么?
1个回答

3

很奇怪,当检查依赖时,Bundler应该锁定builder为v2.1.2。

首先,尝试运行bundle update以使Bundler重新解决所有依赖关系。这样做应该正确地将builder锁定为v2.1.2。

如果失败,您可以通过将其添加到Gemfile中来强制使用builder v2.1.2:

gem `builder`, `~> 2.1.2'

然后运行bundle update builder。这应该会将v2.1.2添加到您的Gemfile.lock中,这应该可以与Cucumber良好地配合使用(它只需要>= 2.1.2)。
有关更多详细信息,请参阅Yehuda Katz最近的博客文章Gem版本控制和Bundler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接