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

con*_*t47 18 gem bundle ruby-on-rails bundler ruby-on-rails-3

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

Gon*_*zih 21

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

  • 很好的回应帮助我更好地理解了上述回应 (2认同)

Mat*_*ner 19

看看Bundler网站上的两个描述.

运行bundle install --deployment是在生产环境中运行,但在运行时会从rubygems中获取宝石.阅读更多在这里下的"部署应用程序"为宗旨标题--deployment标志.

bundle package类似于rake rails:gems:freezeRails 2.3中的旧命令.它抓取宝石并将它们打包到供应商/缓存中.从这里的捆绑网站:

您可以使用它来避免在部署时依赖rubygems.org,或者如果您拥有不在公共存储库中的私有gem

  • 谢谢你,它让我阅读并重新阅读文档,以全面了解你所说的内容......不得不围绕这样一个事实,即你仍然必须在生产服务器上运行'bundle install' ,即使您使用捆绑包并检查vendor/cache文件夹到源代码管理中 (2认同)

ind*_*ect 5

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