我知道他们都将宝石放在你的应用程序的不同位置,但似乎捆绑安装 - 部署做得更彻底。我可以将它创建的供应商/包目录添加到版本控制并完成吗?
答案 0 :(得分:20)
我在开发模式下使用bundle install --path vendor/bundle
。
bundle 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/