Cannot Install Rails Application with Capistrano and RVM

I have a Rails application that I have deployed with Capistrano. I installed RVM on the server since I wanted to use a newer version of Ruby and added this to my deploy.rb file (according to the different instructions I found):

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) require 'rvm/capistrano' set :rvm_ruby_string, '1.9.2' set :rvm_type, :user 

When I run cap deploy , this happens:

  [staging.example.com] executing command ** [out :: staging.example.com] /usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem bundler (>= 0) ( ** [out :: staging.example.com] Gem::LoadError) ** [out :: staging.example.com] from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate' ** [out :: staging.example.com] from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem' ** [out :: staging.example.com] from /usr/bin/bundle:18 command finished in 801ms *** [deploy:update_code] rolling back * executing "rm -rf /home/example/staging.example.com/releases/20110714180125; true" servers: ["staging.example.com"] [staging.example.com] executing command command finished in 895ms failed: "rvm_path=$HOME/.rvm/ /usr/local/bin/rvm-shell '1.9.2' -c 'bundle install --gemfile /home/example/staging.example.com/releases/20110714180125/Gemfile --path /home/example/staging.example.com/shared/bundle --deployment --quiet --without development production'" on staging.example.com 

Why is capistrano using Ruby 1.8? My path is clearly confused.

Here's the rvm info output on staging.example.com:

 ruby-1.9.2-p180: system: uname: "Linux staging 2.6.39.1-linode34 #1 SMP Tue Jun 21 10:29:24 EDT 2011 i686 GNU/Linux" bash: "/bin/bash => GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)" zsh: " => not installed" rvm: version: "rvm 1.6.22 by Wayne E. Seguin ( wayneeseguin@gmail.com ) [https://rvm.beginrescueend.com/]" ruby: interpreter: "ruby" version: "1.9.2p180" date: "2011-02-18" platform: "i686-linux" patchlevel: "2011-02-18 revision 30909" full_version: "ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]" homes: gem: "/home/example/.rvm/gems/ruby-1.9.2-p180" ruby: "/home/example/.rvm/rubies/ruby-1.9.2-p180" binaries: ruby: "/home/example/.rvm/bin/ruby" irb: "/home/example/.rvm/bin/irb" gem: "/home/example/.rvm/bin/gem" rake: "/home/example/.rvm/bin/rake" environment: PATH: "/home/example/.rvm/bin:/home/example/.rvm/gems/ruby-1.9.2-p180/bin:/home/example/.rvm/gems/ ruby-1.9.2-p180@global /bin:/home/example/.rvm/rubies/ruby-1.9.2-p180/bin:/home/example/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ruby/bin" GEM_HOME: "/home/example/.rvm/gems/ruby-1.9.2-p180" GEM_PATH: "/home/example/.rvm/gems/ruby-1.9.2-p180:/home/example/.rvm/gems/ ruby-1.9.2-p180@global " MY_RUBY_HOME: "/home/example/.rvm/rubies/ruby-1.9.2-p180" IRBRC: "/home/example/.rvm/rubies/ruby-1.9.2-p180/.irbrc" RUBYOPT: "" gemset: "" 
+7
source share
3 answers

In fact, recent docs on the rvm-capistrano documentation page indicate that it should be something like this:

 # RVM bootstrap: change to your Ruby and GemSet require 'rvm/capistrano' set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") set :rvm_type, :user 
+3
source
  failed: "rvm_path = $ HOME / .rvm / / usr / local / bin / rvm-shell '1.9.2' -c 'bundle install --gemfile /home/example/staging.example.com/releases/20110714180125/Gemfile --path /home/example/staging.example.com/shared/bundle --deployment --quiet --without development production '

Make sure you have the package installed and the right path when running bundle install on the server. If it is not installed, run gem install bundler to install.

+2
source

If you have the package installed, do the following:

Change this line -> set :rvm_ruby_string, '1.9.2'

to this -> set :rvm_ruby_string, 'ruby-1.9.2-p180'

it works for me.

to find out your versions of rubys - rvm list

+1
source

All Articles