【问题标题】:Capistrano is throwing a NoMethodErrorCapistrano 正在抛出 NoMethodError
【发布时间】:2013-05-11 14:25:51
【问题描述】:

我已经使用 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/deploy 进行空运行部署 cap -n 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

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

【问题讨论】:

  • 我最近也遇到了这个错误,我还没有弄清楚它是从哪里来的。您不必最近强制推送您的分支,是吗?
  • 我有同样的错误。仅在试运行中

标签: ruby deployment rvm capistrano rbenv


【解决方案1】:

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

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

【讨论】:

  • 已经有一段时间了,但我要指出,我现在是 railsless-deploy gem 的维护者。所以,如果它造成更多麻烦,让我知道那边的问题!
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-07
相关资源
最近更新 更多