2

我已经使用 Ruby 的 Capistrano 部署工具几年了,从来没有遇到过太多问题。现在,在将 Ruby 升级到 2.0 之后,我开始遇到各种错误,使我无法部署。

我已经完全卸载了 RVM 和除了我的基本 OS X Ruby 安装(我相信是 1.8.7)之外的所有东西,然后通过 rbenv 从头开始​​重新安装。

我正在通过 rbenv 运行 Ruby 1.9.3-p0,并安装了 Capistrano gem 版本 2.15.4——但每次我尝试cap -n deploy从一个小的默认 Capfile/deploy.rb 设置进行空运行部署时,我收到此错误:

/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

这个错误来自哪里的任何想法???

4

1 回答 1

0

我不确定它是否会对您有所帮助,但我将此追溯到我安装railsless-deploy gem。看起来,即使它不是必需的,它仍然以某种方式被加载并干扰了 Cap 的 built-in load 'deploy',并造成了各种破坏(因为你不能有 railsless-deploy 和 Cap 的 built-in deploy命名空间一起)。

无论如何,我删除了该load 'deploy'行,添加到 railsless-deploy 中,一切都很好。

于 2013-07-01T15:24:23.133 回答