2
votes

I am trying to set up Capistrano deployment for my Rails project. The server uses rvm. I need the script to run bundle install, hence the need for rvm to work with Capistrano.

When I run "cap production deploy," I get this -- any ideas why?

INFO [a5b60a00] Running /usr/local/rvm/bin/rvm wrapper system coupons bundle gem rake ruby on mydomain.com
DEBUG [a5b60a00] Command: /usr/local/rvm/bin/rvm wrapper system coupons bundle gem rake ruby
DEBUG [a5b60a00]    No bin path suitable for lining wrapper. Try setting 'rvm_bin_path'.
cap aborted!
rvm stdout: Nothing written
rvm stderr: Nothing written
/Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/sshkit-1.1.0/lib/sshkit/command.rb:94:in `exit_status='
/Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/sshkit-1.1.0/lib/sshkit/backends/netssh.rb:125:in `block (4 levels) in _execute'
/Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/connection/channel.rb:551:in `call'
/Users/chad/.rvm/gems/ruby-1.9.3-p194/gems/net-ssh-2.7.0/lib/net/ssh/connection/channel.rb:551:in `do_request'
...

I have this in deploy.rb:

set :rvm_ruby_string, 'ruby-1.9.3-p194'
set :rvm_bin_path, '/usr/local/rvm/bin'
set :rvm_type, :system

and Capfile:

require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

and Gemfile:

gem 'capistrano'
gem 'capistrano-rails'
gem 'capistrano-rvm'
gem 'capistrano-bundler'

ls /usr/local/rvm/bin shows:

bundle                      rake                         ruby-1.9.3-p194         rvm-smile
erb-ruby-1.9.3-p194         rake-ruby-1.9.3-p194         ruby-1.9.3-p194@global  rvmsudo
erb-ruby-1.9.3-p194@global  rake-ruby-1.9.3-p194@global  rvm                     testrb-ruby-1.9.3-p194
gem-ruby-1.9.3-p194         rdoc-ruby-1.9.3-p194         rvm-auto-ruby           testrb-ruby-1.9.3-p194@global
gem-ruby-1.9.3-p194@global  rdoc-ruby-1.9.3-p194@global  rvm-exec
irb-ruby-1.9.3-p194         ri-ruby-1.9.3-p194           rvm-prompt
irb-ruby-1.9.3-p194@global  ri-ruby-1.9.3-p194@global    rvm-shell

and rvm list:

rvm rubies

=* ruby-1.9.3-p194 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
1
have you tried: bundle exec cap production deploy ?ipd

1 Answers

4
votes

So! Turns out adding my "deploy" user on my server to the "rvm" group solved the problem.