Неопределенный метод `instance 'для Capistrano :: Configuration: Class

Я пытаюсь запустить Capistrano и запустить его в приложении rails. У меня есть сервер Linux под управлением Ubuntu 12.04, nginx, unicorn и rails, однако у меня, похоже, возникают некоторые проблемы. Я также использую Capistrano 3.0.0, rails 3.2.14, bundler 1.4.0 & ruby 1.9.3p448 с использованием RVM.

У меня есть только этап производства, и на данный момент яЯ имею дело только с тем, как Capistrano связывается с моим сервером и передает мой код из github (пока нет миграции, пакетирования и т. д.).

Когда я пробую командуcap production deploy:check или жеcap production deploy:setup (что кажется устаревшим?) с настройкой ниже, я получаю следующее сообщение об ошибке: I '

Я не совсем уверен, с чего начать эту ошибку, и Google неМногое предлагаю. Я попытался добавитьrvm-capistrano драгоценный камень, но безрезультатно. Как я могу изменить свой код для устранения этой ошибки?

    cap aborted!
undefined method `instance' for Capistrano::Configuration:Class
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.4.0.rc.1/lib/bundler/capistrano.rb:11:in `'
config/deploy.rb:1:in `'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/lib/capistrano/setup.rb:12:in `load'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/lib/capistrano/setup.rb:12:in `block (2 levels) in '
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/lib/capistrano/application.rb:12:in `run'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/bin/cap:3:in `'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/bin/cap:23:in `load'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/bin/cap:23:in `'
Tasks: TOP => production
(See full trace by running task with --trace)

deploy.rb

require "bundler/capistrano"

set :stages, %w(staging production)
set :default_stage, "production"

set :application, "my_app"
set :user, "andrew"
set :scm, "git"
set :repository, "https://github.com/my_repo/#{application}"
set :branch, "master"

set :deploy_to, "/home/rails/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false

default_run_options[:pty] = true
ssh_options[:forward_agent] = true

after "deploy", "deploy:cleanup" # keep only the last 5 releases

namespace :deploy do
  task :restart, roles: :app do
      run "touch #{current_path}tmp/restart.txt"
    end
  end
  after :finishing, 'deploy:cleanup'

развернуть / production.rb

#Real IP ommitted 
server "10.2.32.68", :web, :app, :db, primary: true

Capfile

# Load DSL and Setup Up Stages
require 'capistrano/setup'

# Includes default deployment tasks
require 'capistrano/deploy'

# require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
# require 'capistrano/bundler'
# require 'capistrano/rails/assets'
# require 'capistrano/rails/migrations'

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }

РЕДАКТИРОВАТЬ Посмотрев на обидную строку в capistrano.rb в bundler, он упоминает, что нужно добавить require 'пакетирования / разворачивание» к deploy.rb, который, казалось, избавился от ошибки экземпляра capistrano.

НОТА Понизился до Capistrano 2.15.5, который избавился от ошибок.

Ответы на вопрос(3)

http://github.com/capistrano/bundler

Это упомянуто здесьhttps://github.com/bundler/bundler/blob/master/lib/bundler/capistrano.rb

что эта проблема связана с тем, что Bundler 1.3.5 не совместим с последней версией Capistrano. Попробуйте обновить до предварительной версии Bundler:.gem install bundler --pre

Я также заметил, что тыМы используем очень старую версию Rails 3.2, которая, вероятно, уязвима для некоторых уязвимостей. Я действительно настоятельно рекомендую обновить эту версию Rails до более новой версии, например Rails 3.2.14.

 Nippysaurus10 нояб. 2013 г., 11:41
Из-за того, что его обновление стоит не решить эту проблему для меня.
 dodgerogers74715 окт. 2013 г., 02:49
Я думаю, что вы правы, это также высветило несколько вопросов в моем проекте. Обновление до версии 3.2.14, как было предложено, попытается заново выполнить капитализацию после полного обновления и вернуться к этому.
Решение Вопроса

было сделано несколько изменений в capistrano 3. См. Примечания к выпуску:http://www.capistranorb.com/2013/06/01/release-announcement.html

Также просмотрите readme.https://github.com/capistrano/capistrano/blob/master/README.md

Capistrano 3 переместил интеграцию упаковщика в драгоценный камень. Чтобы решить вашу проблему:

 1. Uncomment require 'capistrano/bundler' from capify. 
 2. add gem 'capistrano-bundler' to your gemfile.
 3. Go through the comments in capify file and uncomment whichever module you require.

Ох, и если вы непока не хочу использовать bundler, удалите первую строку: require "пакетирования / Capistrano», так просто

Также вы можетеТеперь не используйте переменные, как в предыдущем случае. Вместо непосредственного чтения, используйте fetch (: application) для чтения переменной.

Мне было бы легче вернуться к Capistrano v2.

 Asciant25 авг. 2014 г., 20:48
Исправил это для меня, спасибо.
 yekta23 февр. 2015 г., 16:06
Я действительно неДумаю, что вернуться к v2 проще. Сначала этоСтоит попробовать начать с установки с помощью cap (хотя сначала делайте резервные копии файлов deploy.rb, production.rb и capifile!), затем добавляйте фрагменты обратно, пока он не заработает. Кроме того, я исправил эту проблему с помощью Capistrano 3.1. У меня вопрос по капистрано 3.3.5.
 Anidhya Ahuja20 мая 2016 г., 07:49
@yekta вопрос был задан в 2013 году. Как раз тогда, когда была запущена шапка 3. В этот момент ему было бы легче вернуться к v2, так как помощь была невелика.

Ваш ответ на вопрос