Вот как я выяснил решение (после длительного вытягивания волос).
Я знал, что это был, вероятно, новый камень, который вызывал проблему. Поэтому я пошел в исходный код для sshkit/command.rb и вывел команду, которую он пытался выполнить на удаленном сервере.
Затем я вошел в удаленный сервер и запустил его вручную и получили следующий результат:
$ cd /home/web/sites/site.com/releases/20160106224143 && (RAILS_ENV=production ~/.rvm/bin/rvm default do bundle exec rake db:migrate)
rake aborted!
NoMethodError: undefined method `each_pair' for "slack:deploy:updating":String
/home/web/sites/site.com/shared/bundle/ruby/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1602:in `compile!'
/home/web/sites/site.com/shared/bundle/ruby/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1344:in `add_filter'
/home/web/sites/site.com/shared/bundle/ruby/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1331:in `before'
/home/web/sites/site.com/shared/bundle/ruby/2.2.0/gems/sinatra-1.4.6/lib/sinatra/base.rb:1989:in `block (2 levels) in delegate'
/home/web/sites/site.com/shared/bundle/ruby/2.2.0/gems/slackistrano-1.0.0/lib/slackistrano/tasks/slack.rake:121:in `<top (required)>'
Таким образом, проблема началась с Slackistrano, но потом, что? почему Синатра там? Я не использую Sinatra в своем приложении.
Ну, я обнаружил, что в моем Gemfile был камень, который был только для разработки (mailcatcher), но был в разделе производства Gemfile. Я удалил это и переделал успешно.
Однако, очевидно, существует более глубокая проблема, поскольку, по-видимому, существует нечто вроде столкновения имен по методу «прежде» синатра и capistrano, что вызвало это в первую очередь.
Я размещаю здесь, чтобы помочь другим отлаживать возможные ошибки SSHKit во время развертывания Cap, а также, возможно, направлять других на странные конфликты имен между Sinatra и Capistrano.
[Веб-сайт Mailcatcher] (http://mailcatcher.me/) «Пожалуйста, не помещайте mailcatcher в свой Gemfile. В какой-то момент это будет конфликтовать с вашими приложениями. »Хотя, сказав это, они [используют] (https://github.com/sj26/mailcatcher/blob/efd7b4ff0e3bb7f1dcd4c92752a3311eaa059df8/lib/mail_catcher/web/application.rb#L5) 'require" sinatra "' с [модульным стилем] (https://github.com/sj26/mailcatcher/blob/efd7b4ff0e3bb7f1dcd4c92752a3311eaa059df8/lib/mail_catcher/web/application.rb#L17). 'require" sinatra/base "' вероятно, будет лучше, и следует избегать столкновения имени. – matt
Полезно знать! это был также драгоценный камень с использованием синатра, но я только что проверил, и они требуют синатра/базы, поэтому я не знаю, были ли они оскорблены или нет. –