代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

Rails3的bundler“bundle install--deployment”到底是做什么的?

  •  13
  • nonopolarity  · 技术社区  · 14 年前

    正式文档中描述的事情有点复杂。

    它只是在 .bundle/config

    BUNDLE_PATH: vendor/bundle
    

    然后执行 bundle install ,就这样?(然后install将把所有的gems安装到 vendor/bundle )

    然后当应用程序运行时,它将在 .bundle/配置 ,就这样?

    Update: 如果我使用mercurial(类似于git)来跟踪项目中的文件,那么在执行 bundle install --deployment ,唯一的更改是添加到vendor/bundle的许多文件,以及添加到 .bundle/配置 以下内容:

    BUNDLE_FROZEN: "1"
    BUNDLE_PATH: vendor/bundle
    
    1 回复  |  直到 14 年前
        1
  •  9
  •   svilenv    14 年前

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

    “在部署中,隔离是一个更重要的默认值。此外, 部署应用程序的用户可能没有安装权限 系统的gems,或者web服务器可能没有权限 读一下。”