【问题标题】:What does Rails 3's Bundler "bundle install --deployment" exactly do?Rails 3 的 Bundler “bundle install --deployment” 究竟做了什么?
【发布时间】:2010-09-10 00:54:19
【问题描述】:

正式文档中描述的东西有点复杂。

它只是在.bundle/config 中添加以下行

BUNDLE_PATH: vendor/bundle

然后执行bundle install,就这样? (安装之后会将所有 gem 安装到 vendor/bundle

那么当应用程序运行时,它会在.bundle/config指定的这个路径中寻找gem,就这样?

Update: 如果我使用 Mercurial(类似于 Git)来跟踪项目中的文件,那么在执行 bundle install --deployment 之后,唯一的变化是添加了很多文件到 vendor/bundle,并且添加了 2 行.bundle/config:

BUNDLE_FROZEN: "1"
BUNDLE_PATH: vendor/bundle

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 bundler


    【解决方案1】:

    bundle install --deployment 确实将 gem 本地安装到应用程序中的 vendor/bundle 目录。这反映在您提到的路径设置中的配置更改(BUNDLE_PATH:供应商/捆绑包)。这种方法被称为“冻结”或“供应”gem,它强制应用程序使用本地安装的gem,而不是全局系统gem,这是方便的默认部署。如捆绑器文档中所述:

    "在部署中,隔离是一个更重要的默认设置。另外, 部署应用程序的用户可能没有安装权限 gems 到系统,或者 Web 服务器可能没有权限 阅读它们。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-23
      • 2016-09-10
      • 2023-03-15
      • 2012-10-17
      • 2021-06-04
      • 1970-01-01
      • 2018-07-30
      • 2019-10-06
      相关资源
      最近更新 更多