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.
do an "rvm list" to see which Ruby versions you have installed.
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:
PermitUserEnvironment
option in your ssh configuration file:default_environment
settingFor 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With