我已经使用Ruby的Capistrano部署工具几年了,从来没有遇到太多问题。现在,在将Ruby升级到2.0后,我开始遇到各种错误,使我无法部署。
我已经完全卸载了RVM,除了我的基础OS X Ruby安装(我相信1.8.7)之外的所有东西,然后通过rbenv从头开始重新安装。
我正在通过rbenv运行Ruby 1.9.3-p0,并且安装了Capistrano gem版本2.15.4 - 但是每次我尝试从一个小的默认Capfile /中进行干运行部署cap -n deploy
deploy.rb setup,我收到了这个错误:
/Users/jason/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy/scm/git.rb:234:in `block in query_revision': undefined method `sub' for nil:NilClass (NoMethodError)
我的Capfile只是运行$ capify .
# Capfile
load 'deploy'
# Uncomment if you are using Rails' asset pipeline
# load 'deploy/assets'
load 'config/deploy' # remove this line to skip loading any of the default tasks
config / deploy.rb非常简单:
set :application, "capistrano-example"
set :repository, "git://github.com/jasonrhodes/capistrano-example.git"
set :scm, 'git'
set :user, "myusername"
set :deploy_to, "/home/myusername/jrhodes.me/public_html/capistrano-example"
set :domain, "myserver.com"
role :web, domain # Your HTTP server, Apache/etc
role :app, domain # This may be the same as your `Web` server
任何出现此错误的想法???
答案 0 :(得分:0)
我不确定它是否会对你有所帮助,但我追溯到我对railsless-deploy gem的安装。似乎,即使它不是必需的,它仍然以某种方式加载并干扰了Cap的内置load 'deploy'
,并造成各种破坏(因为你不能无轨道部署和Cap的内置部署命名空间)。
无论如何,我删除了load 'deploy'
行,在railsless-deploy中添加,一切都很顺利。