I tried sudo apt-get install ruby
but it will install Ruby 2.1.5.
How could I install version >= 2.1.9 ?
I tried sudo apt-get install ruby
but it will install Ruby 2.1.5.
How could I install version >= 2.1.9 ?
There is a ruby 2.3 package in the Raspbian repos, but since apt show ruby
on a "jessie" system shows 2.1, I presume this is a "stretch" package -- i.e., part of the the current testing/unstable branch.
However, I ran ldd
on it and libruby2.3
and they alone do not have any requirements that aren't part of jessie, so you could install them this way:
Edit /etc/apt/sources.list
and add a line:
deb http://archive.raspbian.org/raspbian/ stretch main
Run apt get update
; it may take a while.
Then try apt install ruby2.3
. This should work but there are potentially ruby 2.3 gems from the distro that would require a full upgrade of the system to stretch. I have one pi I did this to months ago and it's been fine, but I don't use ruby and only use that pi for particular things, so keep in mind that a full upgrade to testing may (but most likely will not) result in complications.
Upgrading this way may also make using distro gems more complicated -- again, I'm not a ruby user, so the likelihood of this I can't say any more about. Probably installing ruby modules using it's own package management system and not apt
would circumvent this. Although apt may end up wanting to install some occasionally anyway as dependencies, they should not take precedence when used.
For some things, using gem
instead will require you apt install
-dev
packages for things the modules are compiled against, and there may be a small number of those which simply won't fly.
Debian (and hence Raspbian) has a conservative policy about versioning, meaning they prefer to stay back from the bleeding edge in the stable branch (currently, jessie), but also maintain a fairly stable "unstable/testing" branch (stretch) -- or it is once it is once it has been in play for a while, which it now has.
So my recommendation is to go for it. You're now aware of the caveats, and of course you should keep your important data backed up anyway, so there is probably not much at risk.
Installing Ruby on RPi3 with Raspbian Stretch (9.4)
There are two ways to install ruby on the RPi:
ruby2.3
APT package.sudo apt-get install ruby2.3
This will also install the additional dependencies:
libruby2.3 rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet
ruby-power-assert ruby-test-unit ruby2.3 rubygems-integration
However, as is well known, the Raspbian distribution maintainers like to hold back on the version releases, so this package is most likely already outdated, compared to what's available. To get the latest (or even developer) version, use the RVM method below.
What is RVM?
The Ruby Version Manager (RVM) is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems.
The correct way to install Ruby on your RPi is to follow the instructions from one of these locations:
Either way, you are asked to run the script directly from the curl response
output, like this.
(Do not use sudo!)
\curl -sSL https://get.rvm.io | bash -s stable --ruby
However, this is not generally recommended, for obvious security reasons, as you have no idea what is happening or going on!
So instead do the following.
cd ~/Downloads/
\curl -sSL https://get.rvm.io -o rvm-installer
# ^^ That actually resolve to:
# curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer -o rvm-installer
chmod 755 rvm-installer
./rvm-installer
Downloading https://github.com/rvm/rvm/archive/master.tar.gz
Installing RVM to /home/pi/.rvm/
Adding rvm PATH line to /home/pi/.profile /home/pi/.mkshrc /home/pi/.bashrc /home/pi/.zshrc.
Adding rvm loading line to /home/pi/.profile /home/pi/.bash_profile /home/pi/.zlogin.
Installation of RVM in /home/pi/.rvm/ is almost complete:
* To start using RVM you need to run `source /home/pi/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
. /home/pi/.rvm/scripts/rvm
rvm list
# No rvm rubies installed yet. Try 'rvm help install'.
rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.7]
[ruby-]2.4[.4]
[ruby-]2.5[.1]
[ruby-]2.6[.0-preview1]
ruby-head
...
Unfortunately rvm-installer help
doesn't show one of the most useful hidden option: rvm-installer stable --ruby
.
Also, as noted, when you ran the rvm-installer, the following files were modified to add some new rvm related stuff.
~/.profile
~/.mkshrc
~/.zshrc
~/.bash_profile
~/.zlogin
~/.rvm/scripts/rvm
If you don't like this, make sure to pass the --ignore-dotfiles
option to the rvm-installer. If you do so, you will need to manually do this:
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile
Next, we check what stable Ruby version is actually recommended:
https://www.ruby-lang.org/en/downloads/
rvm install ruby-2.5.1 --binary # this binary doesn't exist!
date; time rvm install ruby-2.5.1 -j 4 # we compile with 4 threads,
# this take ~XX min on a RPi3
Once this has finsihed, I can also complete this answer...
The point here, is that rvm
seem far more userfriendly,
once the binaries has been created. Why these are not already
widely available for the RPi3, seem quite crazy.
sources.list
in/etc/apt/sources.list.d
,just haveraspi.list
. Do you mean I need to make a new file ? – Van Tr Jun 09 '16 at 16:00/etc/apt/sources.list
[fixed above]. I'm not sure what the relevance of using one vs. the other is (if any) butsources.list
definitely works. – goldilocks Jun 09 '16 at 16:07