2011-06-10 96 views

回答

17

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

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

bundle package与来自Rails 2.3的旧rake rails:gems:freeze命令类似。它抓住宝石并将它们打包在供应商/缓存中。从捆绑现场here

你可以利用这一点避免依赖 上rubygems.org在部署时,或者如果 您有私人宝石不在 公共仓库

+2

谢谢你,这使我阅读和重新阅读文档,以充分了解你在说什么......必须包围我的头,因为你仍然有在生产服务器上运行“捆绑安装”,即使使用捆绑软件包并将供应商/缓存文件夹检入源代码控制 – concept47 2011-06-15 16:46:06

+0

捆绑包 - 安装部署从rubygems抓取宝石。但是如果你已经完成了一个捆绑软件包并且你的供应商/缓存已经准备好了,那该怎么办?它看起来像捆绑安装 - 部署继续打rubygems获得宝石。 – Mojo 2012-05-10 18:20:12

17

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

+1

伟大的回应帮助我更好地了解上述响应 – concept47 2011-06-15 15:21:31

+1

谢谢, - 无部署解释帮助我在本地主机上运行从服务器下载的应用程序。 – 2012-03-10 08:05:38

5

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

+0

感谢您的链接。这篇文章现在已经过了几年了,我应该知道有什么变化吗? – 2016-01-25 21:37:54