而且,系统如何在不经过捆绑安装过程的情况下为应用程序安装所有gem?
注意:此问题与创建 新应用 的过程有关。与In Rails, why there is a new Gemfile.lock when no bundle or bundle install was run? (and a new Gemfile timestamp too)不同的问题。
答案 0 :(得分:2)
Gemfile.lock是运行bundle install
时创建的gem及其版本的快照。正如Bundler rationale中检查您的代码到版本控制部分所述:
Gemfile.lock使您的应用程序成为您自己的一个包 代码和它最后一次运行的第三方代码,所以你肯定知道 一切正常。指定第三方的确切版本 您在Gemfile中依赖的代码不会提供相同的代码 保证,因为宝石通常会为它们声明一系列版本 的依赖关系。
Gems可以通过RubyGems安装在bundler之外(例如gem install gem_name
),但最好使用RVM,它允许您安装不同版本的Ruby并管理每个应用程序的各个gemset正如RVM best practices中所述。
答案 1 :(得分:0)
执行rails new <app>
时,作为设置的一部分,它将为您运行bundle install
。