Upgrading Ruby with Moonshine

Bala Paranj edited this page Sep 13, 2015 · 16 revisions

Moonshine supports installing several versions of Ruby easily out of the box, according to the value of the :ruby: key set in config/moonshine.yml. If you wish to upgrade or change the version installed when you initially deployed your server, it’s as simple as:

  1. Update the :ruby: value in your config/moonshine.yml (see options below)
  2. cap staging ruby:upgrade # test the installation, and test your app, on staging!
  3. cap production ruby:upgrade

The current options for the :ruby: configuration key are:

ree Ruby Enterprise Edition 1.8.6-20090610
ree187 (default) Ruby Enterprise Edition 1.8.7-2012.02
mri The ruby version available in Ubuntu from apt
src187 MRI 1.8.7-p249 compiled from source
src192 MRI 1.9.2-p290 compiled from source
src193 MRI 1.9.3-p392 compiled from source
src193railsexpress MRI 1.9.3-p547 compiled from source with falcon and additional patches
src193falcon alias for src193railsexpress
src200 MRI 2.0.0-p598 compiled from source
src200railsexpress MRI 2.0.0-p598 compiled from source with falcon and additional patches
src21 MRI 2.1.5 compiled from source
src22 MRI 2.2.3 compiled from source
src21railsexpress MRI 2.1.5 compiled from source with falcon and additional patches
brightbox193 Ubuntu-optimized MRI 1.9.3 from Brightbox
brightbox21 Ubuntu-optimized MRI 2.1.x from Brightbox

Providing a Custom Ruby

Adding your own custom Ruby version is possible by setting :ruby: my_custom_ruby and defining your own cap task in the ruby namespace within your recipes:

namespace :ruby do
  task :my_custom_ruby do
    remove_ruby_from_apt
    # fetch, compile, whatever you need to do
  end
end

You can have a look at the built-in tasks for examples.