Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I configure capistrano to use my rvm version of Ruby

People also ask

What is Capistrano Ruby?

Capistrano is a framework for building automated deployment scripts. Although Capistrano itself is written in Ruby, it can easily be used to deploy projects of any language or framework, be it Rails, Java, or PHP.

How do I check the default version of Ruby?

do an "rvm list" to see which Ruby versions you have installed.

What does RVM stand for Ruby?

RVM stands for Ruby Version Manager. It is a command line tool which allows you to easily install, manage and work with different Ruby environments. With RVM, you can easily install different versions of Ruby and easily switch between them.


You have two options:

  1. Enable .ssh environment variables using the PermitUserEnvironment option in your ssh configuration file
  2. Use the capistrano :default_environment setting

For the second option, simply add the following line in your deploy.rb file

set :default_environment, { 
  'PATH' => "/path/to/.rvm/ree-1.8.7-2009.10/bin:/path/to/.rvm/gems/ree/1.8.7/bin:/path/to/.rvm/bin:$PATH",
  'RUBY_VERSION' => 'ruby 1.8.7',
  'GEM_HOME' => '/path/to/.rvm/gems/ree/1.8.7',
  'GEM_PATH' => '/path/to/.rvm/gems/ree/1.8.7' 
}

To get the accurate locations have a look at cat ~/.rvm/default


If your rvm version is recent on both development and production machines add this to your deploy.rb:

set :rvm_ruby_string, '1.9.2@yourapp' # you probably have this already
set :rvm_type, :user # this is the money config, it defaults to :system

The rvm-capistrano gem is the best way to go.

Link to the official detailed usage of that gem. From that I am guessing this will get the local version of Ruby:

set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system

See http://rvm.io/integration/capistrano/. "Integration via the rvm capistrano plugin" looks like a winner.

And http://rvm.io/deployment/


I found out the easiest way is to add the version you want. Just add

ruby-2.5.0

string (or the version you want) into .ruby-version in the root folder. No need to configure deploy.rb or some rather hacky solutions.