Posted by Hiroshi SHIBATA on 8 Nov 2018
We released the official snap package of the Ruby language.
Snap is a package system developed by Canonical. It allows you to distribute
a software with its dependencies for many different Linux systems.
This solves the problem that a user cannot install the latest Ruby release
from the default repository of their system like in rpm
or apt
.
On Ubuntu 16.04 or later, you can install the Ruby snap with the following command:
sudo snap install ruby --classic
(If you use other Linux distributions, please refer to https://docs.snapcraft.io/installing-snapd/6735.)
Our snap uses the “channel” feature to release multiple Ruby series concurrently. For example, without specifying a channel, currently Ruby 2.5.3 will be installed. But if you want to use Ruby 2.4, specify the 2.4 channel as follows:
sudo snap install ruby --classic --channel=2.4/stable
You can also use multiple channels. The following commands switch to Ruby 2.3:
sudo snap switch ruby --channel=2.3/stable
sudo snap refresh
Our snap sets the GEM_HOME
and GEM_PATH
environment variables
to $HOME/.gem
.
So if you want to execute commands installed by gems, such as rails
and
rspec
, without using bundle exec
, you have to add the following line
to your shell rc files (like .bashrc
):
eval `ruby.env`
Since $HOME/.gem
is shared by multiple versions, if you switch versions
and use them, you will need to recompile C extensions using the
gem pristine --extensions
command.
The initial version of the official Ruby snap has been released during the Snapcraft summit held at the Canonical office in London on Nov 6-8th, 2018. Any feedback is welcome at https://github.com/ruby/snap.ruby.
Enjoy!