【问题标题】:Capistrano error: undefined method `already_invoked' for <Rake::Task load:defaults => []>:Rake::TaskCapistrano 错误:<Rake::Task load:defaults => []>:Rake::Task 的未定义方法 `already_invoked'
【发布时间】:2016-07-27 21:55:45
【问题描述】:

我花了太多时间调试这个,我不知道发生了什么。 “上限生产部署”今天早上运行良好,现在它只是抛出一个错误。令人惊讶的是,到目前为止,谷歌并没有提供太多帮助。据我所知,代码库没有任何变化:

➜  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

有没有人可以提供一些指导?

【问题讨论】:

    标签: ruby capistrano


    【解决方案1】:

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

    根本问题是 Capistrano 3.6.0(错误地)与 Rake

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

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

    更新:Capistrano 3.6.1 已发布并恢复与 Rake

    【讨论】:

    • 谢谢,马特。这是完全有道理的,因为该错误与当天早些时候的“捆绑更新”相吻合。
    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2017-07-13
    • 1970-01-01
    • 2014-05-19
    相关资源
    最近更新 更多