【发布时间】:2014-03-24 16:01:36
【问题描述】:
我知道有很多关于此错误消息的问题,但我找不到在与我相同的上下文中发生此错误的问题。
我正在尝试将以前工作的 Capistrano 配置从版本 2 迁移到 Capistrano 3。不幸的是,调用 cap production deploy --dry-run 会产生错误
cap aborted!
undefined local variable or method `home' for main:Object
/myapp/config/deploy.rb:6:in `<top (required)>'
这是出现错误的deploy.rb 直到第 6 行的内容:
set :user, "myuser"
set :application, "myapp"
set :domain, "mydomain"
set :repository, "git@github.com:acme/myapp.git"
set :home, "/home/myuser"
set :deploy_to, "#{home}/#{domain}"
我对 Ruby 了解不多,但根据我收集到的信息,冒号表示这些是符号,而不是变量,并且在 Capistrano documentation 中,它们使用相同的语法来定义“变量”(参见第5段“在deploy.rb中设置共享信息”)?
部署脚本在装有 Ruby 2.0.0p247 和 Capistrano 2.9.0 的 OS X 上完美运行。现在在使用 Ruby 1.9.3p545 和 Capistrano 3.1.0 的 CentOS 上,出现上述错误。我对 Capfile 进行了几处更改以使其与 Capistrano 3 一起运行,但保持 deploy.rb 不变,希望它能正常工作。
【问题讨论】:
标签: ruby capistrano3