3
votes

My issue is identical to this: require 'bundler/capistrano' breaks capistrano

Except it seems I am using correct ruby versions.

I added this line in my deploy.rb:

require 'bundler/capistrano'

And getting the following error:

/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo/gems/capistrano-2.5.19/lib/capistrano/configuration/loading.rb:152:in `require': no such file to load -- bundler/capistrano (LoadError)

Here's the info:

Craig:/usr/local/src/hammer$ gem which bundler
/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo/gems/bundler-1.0.10/lib/bundler.rb

Craig:/usr/local/src/hammer$ gem which capistrano
/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo/gems/capistrano-2.5.19/lib/capistrano.rb

Craig:/usr/local/src/hammer$ ruby --version
ruby 1.9.2p174 (2011-01-28 revision 30696) [i386-darwin9.8.0]

Craig:/usr/local/src/hammer$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.5.2
  - RUBY VERSION: 1.9.2 (2011-01-28 patchlevel 174) [i386-darwin9.8.0]
  - INSTALLATION DIRECTORY: /Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo
  - RUBY EXECUTABLE: /Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-9
  - GEM PATHS:
     - /Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo
     - /Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/
    ruby 1.9.2p174 (2011-01-28 revision 30696) [i386-darwin9.8.0]

Craig:/usr/local/src/hammer$ rvm info

ruby-1.9.2-head@foo:

  system:
    uname:       "Darwin craig-a-flannagans-macbook-pro.local 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386"
    bash:        "/bin/bash => GNU bash, version 3.2.17(1)-release (i386-apple-darwin9.0)"
    zsh:         "/bin/zsh => zsh 4.3.4 (i386-apple-darwin9.0)"

  rvm:
    version:      "rvm 1.2.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"

  ruby:
    interpreter:  "ruby"
    version:      "1.9.2p174"
    date:         "2011-01-28"
    platform:     "i386-darwin9.8.0"
    patchlevel:   "2011-01-28 revision 30696"
    full_version: "ruby 1.9.2p174 (2011-01-28 revision 30696) [i386-darwin9.8.0]"

  homes:
    gem:          "/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo"
    ruby:         "/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head"

  binaries:
    ruby:         "/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head/bin/ruby"
    irb:          "/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head/bin/irb"
    gem:          "/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head/bin/gem"
    rake:         "/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo/bin/rake"

  environment:
    PATH:         "/Users/craigflannagan/.rvm/gems/ruby-1.9.2-   head@foo/bin:/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@global/bin:/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head/bin:/Users/craigflannagan/.rvm/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/git/bin"
    GEM_HOME:     "/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo"
    GEM_PATH:     "/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@foo:/Users/craigflannagan/.rvm/gems/ruby-1.9.2-head@global"
    MY_RUBY_HOME: "/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head"
    IRBRC:        "/Users/craigflannagan/.rvm/rubies/ruby-1.9.2-head/.irbrc"
    RUBYOPT:      ""
    gemset:       "foo"

Have been using capistrano and bundler in other projects, but am relatively new to setting up capistrano receipe as well as using RVM.

Thanks in advance for any help in figuring what is wrong here.

UPDATE:

Tried a random solution I found on web here http://www.mattvsworld.com/blog/2010/03/rails-3-bundler-capistrano/

If I take out require 'bundler/capistrano' and put this in instead at end of deploy.rb:

namespace :bundler do
  task :create_symlink, :roles => :app do
    shared_dir = File.join(shared_path, 'bundle')
    release_dir = File.join(current_release, '.bundle')
    run("mkdir -p #{shared_dir} && ln -s #{shared_dir} #{release_dir}")
  end
  task :bundle_new_release, :roles => :app do
    bundler.create_symlink
    run "cd #{release_path} && bundle install --without test"
  end
end
after 'deploy:update_code', 'bundler:bundle_new_release'

It works - the deployment does everything, including bundle installing. Any ideas why the simplified "require 'bundler/capistrano'" solution would not work for me?

1
I'd be interested in an answer to this as well.JohnMerlino
do you have gem 'capistrano-bundler' in your Gemfile?Anton Grigoryev

1 Answers

1
votes

I had similar problem, and got it solved by updating bundler to version 1.0.13 from 1.0.0.rc.3 that I had earlier.