【问题标题】:When creating a new Rails application, why is there a Gemfile.lock file without running bundle install?创建新的 Rails 应用程序时,为什么没有运行 bundle install 会有 Gemfile.lock 文件?
【发布时间】:2012-03-11 02:58:29
【问题描述】:

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

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

【问题讨论】:

  • 在 Rails 3.1 中,new 生成器实际上触发了bundle install。你指的是这个吗?
  • 哦,真的吗?好的,这是有道理的。没注意到。

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


【解决方案1】:

Gemfile.lock 是运行 bundle install 时创建的 gem 及其版本的快照。正如Bundler rationale将代码检查到版本控制中部分所述:

Gemfile.lock 使您的应用程序成为您自己的一个包 代码和它上次运行的第三方代码,所以你肯定知道 一切正常。指定第三方的确切版本 您在 Gemfile 中依赖的代码不会提供相同的 保证,因为 gems 通常会为其声明一系列版本 依赖关系。

Gems 可以通过 RubyGems(例如 gem install gem_name)在 bundler 之外安装,但最好使用 RVM,它允许您安装单独版本的 Ruby 并为每个应用程序管理单独的 gemset,如 @987654324 中所述@。

【讨论】:

  • 我认为提问者在问题中不小心写了“with”而不是“without”。
  • 不,我的意思是without going through the bundle install process
【解决方案2】:

当您执行rails new <app> 时,作为设置的一部分,它会为您运行bundle install

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-24
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多