什么是捆绑安装 - 部署和捆绑包之间的区别

时间:2011-06-10 00:00:14

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

我知道他们都将宝石放在你的应用程序的不同位置,但似乎捆绑安装 - 部署做得更彻底。我可以将它创建的供应商/包目录添加到版本控制并完成吗?

3 个答案:

答案 0 :(得分:20)

我在开发模式下使用bundle install --path vendor/bundlebundle install --deployment将锁定Gemfile.lock,并且在更改Gemfile时不会更新它,因此永远不要在开发环境中使用部署选项。 bundle install --no-deployment将禁用捆绑部署模式。 您可以正确的方式阅读有关捆绑使用情况的that帖子。

答案 1 :(得分:19)

在Bundler的网站上查看两者的描述。

运行bundle install --deployment将在生产环境中运行,但会在运行时从rubygems中获取宝石。阅读“部署您的应用程序”标题下的更多here,以获取--deployment标记。

bundle package类似于Rails 2.3中的旧rake rails:gems:freeze命令。它抓取宝石并将它们打包到供应商/缓存中。来自捆绑网站here

  

您可以使用它来避免依赖   在部署时在rubygems.org上,或者如果   你有不属于的私人宝石   公共存储库

答案 2 :(得分:5)

我在RailsConf 2011上的演讲中解释了--demployment模式标志背后的原因。这个博客文章包含了我对该演讲的注释,并且(我希望)涵盖了该方式背后的所有推理 - 部署工作:http://andre.arko.net/2011/06/11/deploying-with-bundler-notes/

相关问题