Ruby on rails 帮助Bundler找出原因;降级;我的宝贝之一

Ruby on rails 帮助Bundler找出原因;降级;我的宝贝之一,ruby-on-rails,bundler,fog,gemfile,Ruby On Rails,Bundler,Fog,Gemfile,今天我定期检查gem。发现一些需要更新的内容: $ gem outdated ZenTest (4.6.1 < 4.6.2) bcrypt-ruby (2.1.4 < 3.0.0) factory_girl (2.0.4 < 2.0.5) fog (0.10.0 < 0.11.0) hike (1.2.0 < 1.2.1) net-ssh (2.1.4 < 2.2.1) rb-fsevent (0.4.3 < 0.4.3.1) rdoc (3.9.2 &

今天我定期检查
gem
。发现一些需要更新的内容:

$ gem outdated
ZenTest (4.6.1 < 4.6.2)
bcrypt-ruby (2.1.4 < 3.0.0)
factory_girl (2.0.4 < 2.0.5)
fog (0.10.0 < 0.11.0)
hike (1.2.0 < 1.2.1)
net-ssh (2.1.4 < 2.2.1)
rb-fsevent (0.4.3 < 0.4.3.1)
rdoc (3.9.2 < 3.9.3)
selenium-webdriver (2.4.0 < 2.5.0)
$gem过时
ZenTest(4.6.1<4.6.2)
bcrypt红宝石(2.1.4<3.0.0)
工厂女孩(2.0.4<2.0.5)
雾(0.10.0<0.11.0)
加息(1.2.0<1.2.1)
net ssh(2.1.4<2.2.1)
rb fsevent(0.4.3<0.4.3.1)
rdoc(3.9.2<3.9.3)
selenium webdriver(2.4.0<2.5.0)
所以我
gem更新它们,然后
bundle更新它们。注意到
bundle update
被迫安装较旧版本的fog
安装fog(0.9.0)
?并且不知道如何找出是什么导致这个依赖被降级。在
fog0.10.0
下,一切正常

gem dependency-R fog
只说
Carrierwave
需要它……而且
Carrierwave
没有改变,并且对fog 0.10.0感到满意


有什么想法吗?或者我可以用来解决/理解这一问题的工具?

在您的gemfile和bundler中,不一定使用最新版本的gem被认为是一种良好的做法

例如,如果rails文件中有一行,例如:

创业板‘全球化3’,“~>0.1.0”

。。。它将获得最新的gem,如0.1.2、0.1.3等,但永远不会使用0.2.1


这是为了保持gem依赖项之间的向后兼容性。Bundler在处理fog时可能遵循这种做法。

您的
Gemfile.lock
文件应该显示一个依赖关系层次结构,以帮助确定还需要0.9.x版本的
fog