Capistrano错误:未定义的方法`yet_invoked'代表<rake :: task load:defaults =“”> []&gt;:Rake :: Task

时间:2016-07-27 21:55:45

标签: ruby capistrano

我花了太多时间调试这个,我不知道发生了什么。 “上限生产部署”今天早上工作正常,现在只是抛出一个错误。令人惊讶的是,到目前为止谷歌还没有多大帮助。在我所知的代码库中没有任何改变:

➜  sesac-mm-matching git:(deploy) cap production deploy --trace
    ** Invoke production (first_time)
    ** Execute production
    cap aborted!
    NoMethodError: undefined method `already_invoked' for <Rake::Task load:defaults => []>:Rake::Task
    /Users/***/.rvm/gems/ruby-2.3.0@global/gems/capistrano-3.6.0/lib/capistrano/dsl.rb:16:in `invoke'
    /Users/***/.rvm/gems/ruby-2.3.0@global/gems/capistrano-3.6.0/lib/capistrano/setup.rb:24:in `block (2 levels) in <top (required)>'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:235:in `each'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:235:in `execute'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
    /Users/***/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/task.rb:165:in `invoke'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:150:in `invoke_task'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:106:in `block (2 levels) in top_level'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:106:in `each'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:106:in `block in top_level'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:115:in `run_with_threads'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:100:in `top_level'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:78:in `block in run'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
    /Users/***/.rvm/gems/ruby-2.3.0/gems/rake-10.5.0/lib/rake/application.rb:75:in `run'
    /Users/***/.rvm/gems/ruby-2.3.0@global/gems/capistrano-3.6.0/lib/capistrano/application.rb:14:in `run'
    /Users/***/.rvm/gems/ruby-2.3.0@global/gems/capistrano-3.6.0/bin/cap:3:in `<top (required)>'
    /Users/***/.rvm/gems/ruby-2.3.0/bin/cap:23:in `load'
    /Users/***/.rvm/gems/ruby-2.3.0/bin/cap:23:in `<main>'
    /Users/***/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
    /Users/***/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
    Tasks: TOP => production

有人能提供方向吗?

1 个答案:

答案 0 :(得分:11)

是的,看起来您在新发布的Capistrano 3.6.0中发现了一个错误。请在此处报告错误:https://github.com/capistrano/capistrano/issues

潜在的问题是Capistrano 3.6.0(错误地)与Rake&lt;不兼容。 11.0.0。

与此同时,您可以通过使用gem install rakebundle update rake将Rake升级到版本11.0.0或更高版本来解决此问题(取决于您是否使用bundle exec用于Capistrano )。

如果您无法升级Rake,请将Capistrano降级到版本3.5.0,直到错误修复为止。

更新:Capistrano 3.6.1已经发布并恢复与Rake&lt;的兼容性11.0.0。

相关问题