我知道有很多关于此错误消息的问题,但我找不到在与我相同的上下文中发生此错误的问题。
我正在尝试将以前工作的 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 文档中,它们使用相同的语法来定义“变量”(参见第 5 段“设置deploy.rb 中的共享信息”)?
部署脚本在带有 Ruby 2.0.0p247 和 Capistrano 2.9.0 的 OS X 上完美运行。现在在使用 Ruby 1.9.3p545 和 Capistrano 3.1.0 的 CentOS 上,出现上述错误。我已经对 Capistrano 3 进行了一些更改以Capfile
使其与 Capistrano 3 一起运行,但保持deploy.rb
不变,希望它会起作用。