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?
gem 'capistrano-bundler'
in your Gemfile? – Anton Grigoryev