2013-03-26 148 views
1

我部署Rails应用程序,这是我目前做:捆扎机命令捆绑安装--deployment没有捆绑所有宝石

构建应用程序的步骤:由git的哈希标签

  1. 混帐同步
  2. 将宝石捆绑到应用程序自我目录(供应商/捆绑销售)中。
  3. 预先编译资产。
  4. 将应用程序构建到debian包(.deb)中。
  5. 在目标机器上,我只需要dpkg -i myapplication.deb来安装它。那是。

现在的问题是步骤2

后我执行束包装--all束安装--deployment,没有被绑定到供应商/束/红宝石/ 1.9.1所有宝石/ gems /,它们是来自git路径的宝石,而不是默认的rubygems.org。

 
➜ luna-server git:(v0.1.0) ✗ bundle show rails 
/Users/qichunren/code/work/luna-server/vendor/bundle/ruby/1.9.1/gems/rails-3.2.11 
➜ luna-server git:(v0.1.0) ✗ bundle show luna-channel 
/Users/qichunren/code/work/luna-server/vendor/cache/luna-channel-31bb309440e5 

所以,当我跑我的建造轨道目标机上的应用,它表现出一定的宝石没有安装(如:月神通道),请安装捆绑在一起,因为它不是/vendor/bundle/ruby/1.9。 1 /宝石/

有没有办法让所有的宝石从捆绑缓存到目标捆绑目录?

请帮帮我。谢谢。

+0

你有没有想过解决这个问题?尝试供应我的ruby应用程序时遇到同样的问题。我正在考虑只手工复制我的宝石,因为明显bundler是有史以来最差的依赖管理器。从来没有见过这样一种工具,它以许多奇特的方式破碎了。 – 2013-11-27 17:11:04

+0

我有快速入侵修复问题,这是我的git提交:https://github.com/qichunren/bundler/commit/192c822724f356f2573cabd4fd4ddc1a217b7d8b 但作者不认为这是一个错误:https://github.com/bundler/bundler/pull/2423和 https:// github。com/bundler/bundler/issues/2422 – qichunren 2013-11-28 03:48:13

回答

0

上有bundle installlink to docs

一个--path选项这告诉捆绑的确切路径安装所有的宝石。

您的发展风格并不典型,所以我强烈建议您仔细阅读捆绑包文档,并确定bundle packagebundle install --deployment是做什么的。

http://gembundler.com/v1.3/deploying.html
http://gembundler.com/v1.3/bundle_package.html

有时很难看到,当他们在谈论开发机或生产机器。

+0

不,--path选项对我没有用处,我只想将它捆绑到默认目录:./vendor/bundle。 问题是:并非所有类型的gem都捆绑到./vendor/bundle,git仓库或路径中的gem仍然保留在./vendor/cache中。而且我不想让./vendor/cache目录留在我的构建包中。这是问题。 – qichunren 2013-03-26 11:39:24