capistrano部署 - 基本命令失败

时间:2012-11-25 17:31:22

标签: capistrano

我正在尝试跟随this guide在ubuntu(12.10)上使用nginx,unicorn和capistrano设置rails堆栈。我决定使用RVM进行ruby安装。

到目前为止我安装的内容:

  • 所有依赖库(imagemagick,git,mysql-server等)
  • nginx(1.2.1)
  • rvm(1.17)和ruby(1.9.2)
  • gems:rails(3.1.6),unicorn(4.4.0),capistrano(2.13.5),...

在当地,我进入了

$ capify .

有效(在顶部提到的部署指南,第8页上)

但是我坚持下一部分'cap deploy:setup'(在指南,第12页):

$ cap deploy:setup
/Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/variables.rb:26:in `set': you must specify exactly one of either a value or a block (ArgumentError)
  from ./config/deploy.rb:4:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:93:in `instance_eval'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:93:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:172:in `load_from_file'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:89:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:86:in `block in load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:86:in `each'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:86:in `load'
  from Capfile:4:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:93:in `instance_eval'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:93:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:172:in `load_from_file'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:89:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:86:in `block in load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:86:in `each'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/configuration/loading.rb:86:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/cli/execute.rb:65:in `block in load_recipes'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/cli/execute.rb:65:in `each'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/cli/execute.rb:65:in `load_recipes'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/cli/execute.rb:31:in `execute!'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/lib/capistrano/cli/execute.rb:14:in `execute'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/gems/capistrano-2.13.5/bin/cap:4:in `<top (required)>'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/bin/cap:19:in `load'
  from /Users/chuck/.rvm/gems/ruby-1.9.2-p290@shop/bin/cap:19:in `<main>'

似乎它并不依赖于deploy:setup。

我随机尝试了一些其他的capistrano命令,我总是得到相同的错误消息'你必须指定一个值或一个块(ArgumentError)'

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

固定。

这是一个愚蠢的错误,我在我的deploy.rb中设置了两次:scm,:git。