在创建新的Rails应用程序时,为什么没有运行bundle install的Gemfile.lock文件?

时间:2012-03-11 02:58:30

标签: ruby-on-rails ruby-on-rails-3 rubygems bundle

而且,系统如何在不经过捆绑安装过程的情况下为应用程序安装所有gem?

注意:此问题与创建 新应用 的过程有关。与In Rails, why there is a new Gemfile.lock when no bundle or bundle install was run? (and a new Gemfile timestamp too)不同的问题。

2 个答案:

答案 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