我只想弄清楚为什么在创建新的rails应用程序时,每次运行初始化脚本时,bundler都会安装新的gem。我无法找到它是否以及在哪里检查新宝石,任何人都有任何想法。我很确定它确实检查了更新的宝石,但如果有人能够验证我的假设,那么我知道我的应用程序不会流氓,我会感觉好多了。
答案 0 :(得分:1)
我已经看到了这一点。我最初很惊慌,但我已经知道这是因为你在捆绑时使用的宝石已经在rubygems.org来源改变了它们对其他宝石的依赖性变化,在你知道它之前你看到很多宝石正在已下载,但大多数情况下它们只是现有宝石的新版本。
最小化这种情况的一种方法是为每个宝石指定版本,但这实际上不是一个好的方法或长期练习,因为你基本上通过锁定通过宝石完成的一切来冻结你的应用程序而且它们不会向前移动哪个可以快速导致旧的非活动软件。然而,对于也将被移动并且版本控制被严格控制和测试的生产软件,这可能是非常有用的。当然版本可以在版本号的逐案(或gem-by-gem)实例上完成。
您可以尝试连续(在一分钟内)完成两个新的rails应用程序来测试它。
答案 1 :(得分:1)
当我创建一个新应用时,我看到了:
....
.....
run bundle install
Fetching source index for http://rubygems.org/
Using rake (0.9.2.2)
Using multi_json (1.0.3)
Using activesupport (3.1.2)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.2)
Using erubis (2.7.0)
Using rack (1.3.5)
Using rack-cache (1.1)
Installing sprockets (2.1.1)
Installing jquery-rails (1.0.18)
.....
如您所见,只安装了两个宝石,因为它们最近已更新