41

I'm using Capistrano 2 with Rails 3 project. Recently I rebuilt my gemset form scratch and now I receive error "Please require this file from within a Capistrano recipe (LoadError)" when I try to run rails server.

Detailed error message:

/Users/leonidlukin/.rvm/rubies/ruby-1.9.3-p429/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/leonidlukin/Sites/moscowshows/script/rails server -b 0.0.0.0 -p 3000 -e development
/Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/capistrano-2.15.5/lib/capistrano/configuration/loading.rb:18:in `instance': Please require this file from within a Capistrano recipe (LoadError)
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/helpers/base.rb:16:in `rvm_with_capistrano'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/helpers/_cset.rb:3:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/base.rb:1:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/selector.rb:1:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano.rb:3:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:85:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:85:in `rescue in block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:68:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:61:in `each'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:61:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler.rb:134:in `require'
    from /Users/leonidlukin/Sites/moscowshows/config/application.rb:13:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:53:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:53:in `block in <top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>'
    from /Users/leonidlukin/Sites/moscowshows/script/rails:6:in `require'
    from /Users/leonidlukin/Sites/moscowshows/script/rails:6:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'

Process finished with exit code 1

Which file I should require from within a Capistrano recipe?

Leo Lukin
  • 1,201
  • 1
  • 11
  • 24

4 Answers4

128

The problem is with rvm-capistrano.

Correct it in gemfile. require: false

 gem  'rvm-capistrano',  require: false

This should help

Misha
  • 1,876
  • 2
  • 17
  • 24
  • 3
    Thanks for the solution. It works like a charm. But could you please explain a little bit what happened? Thanks in advance. – qcam Feb 26 '15 at 09:43
  • 4
    @huynhquancam seems like this problem reappeared after release of bundler 1.8.0. Bundler fails to load rvm-capistrano. Hopefully It going to be fixed. – Misha Feb 26 '15 at 20:03
  • 3
    The piece of code that is failing is here https://github.com/bundler/bundler/blob/master/lib/bundler/runtime.rb#L85 – Misha Feb 26 '15 at 20:19
  • Doesn't work for me. Posted detailed question here http://stackoverflow.com/questions/29101421/please-require-this-file-from-within-a-capistrano-recipe-erro-while-deploying – Amit Patel Mar 17 '15 at 14:21
  • @AmitPatel seems like you fixed your problem. – Misha Mar 17 '15 at 16:51
13

A better solution I found, instead of removing it, to just move rvm-capistrano before capistrano:

# Deploy with Capistrano
gem 'rvm-capistrano'
gem 'capistrano'
gem 'capistrano-ext'
yesnik
  • 4,085
  • 2
  • 30
  • 25
Mugur 'Bud' Chirica
  • 4,246
  • 1
  • 31
  • 34
  • Please don't post identical answers to multiple questions. Post one good answer, then vote/flag to close the other questions as duplicates. If the question is not a duplicate, *tailor your answers to the question.* – durron597 Sep 02 '15 at 14:36
  • I will keep that in mind next time I give an answer. Thanks for pointing it out. – Mugur 'Bud' Chirica Sep 09 '15 at 16:10
2

But, what's strange, I've solved this problem also like that (in my Gemfile, just to comment main capistrano gem):

# Deploy with Capistrano
# gem 'capistrano', :group => :development
gem 'rvm-capistrano', :group => :development
Leo Lukin
  • 1,201
  • 1
  • 11
  • 24
0

In your Gemfile change this.

gem 'rvm-capistrano', require: false

This will solve the problem without any headache.

Subhash Chandra
  • 3,165
  • 1
  • 27
  • 30