使用capistrano部署时,“本地”gem不起作用

时间:2012-09-27 10:08:03

标签: ruby-on-rails ruby capistrano bundler activeadmin

我正在开发一个需要active_admin gem的项目。但我需要修改activeadmin:

  • 我在我创建的目录中克隆了active_admin repo:/vendor/gems/
  • 删除.git里面:/vendor/gems/active_admin/
  • 将文件夹添加到我自己的git存储库
  • 我修改了Gemfile以指向文件夹:

    gem "active_admin", :path => "vendor/gems/active_admin"

它适用于本地开发机器:我做bundle install并且它工作正常:

Using activeadmin (0.5.0) from source at ./vendor/gems/active_admin 

但是当我做cap deploy时,捆绑包抱怨:

 ** [out] Could not find activeadmin-0.5.0 in any of the sources

有什么神奇的解决方案吗?我应该将activeadmin包含在lib这样的另一个目录中,并将其从gemfile中删除吗?

感谢您的帮助!

POF

2 个答案:

答案 0 :(得分:1)

尝试指定git路径而不是本地路径。

gem "active_admin", :git => 'git://........../gem_name.git'

我有同样的问题部署到heroku,我得到它指定一个git路径而不是本地路径。检查:How to get working a local gem on heroku?

答案 1 :(得分:0)

Bundler v1.2确实从github获取它,请参阅详细信息here

使用bundler,你可以将你的内置宝石打包到repo中,而无需为它们克隆github repos。跑吧

$ bundle package
$ bundle install
在您的仓库中

,并提交捆绑商添加到仓库的宝石。 或者,你可以使用你在本地构建的gem,将它放在/ vendor / cache中,而其他所有的宝石都会结束。