In preparation of a workshop at Agile Testing Days 2022, I’m setting up a Raspberry Pi as a backup system for participants, to be prepared if things go wrong. Especially one of the first steps “Installing Ruby – If Necessary” has the potential to fail or take too long.
With the keyboard configured (see the previous post “Setting Up a Raspberry PI with a German Mac Keyboard“), the next step is installing a recent Ruby version. I’ll use
rbenv , a widespread tool to manage Ruby versions on a machine.
rbenv page suggests to install the tool using a basic git checkout.
~ $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv Cloning into '/home/guest/.rbenv'... remote: Enumerating objects: 3138, done. remote: Counting objects: 100% (288/288), done. remote: Compressing objects: 100% (147/147), done. remote: Total 3138 (delta 165), reused 231 (delta 131), pack-reused 2850 Receiving objects: 100% (3138/3138), 626.69 KiB | 3.12 MiB/s, done. Resolving deltas: 100% (1955/1955), done.
Following the next step in the docs,
.bashrc is updated to initialise
~ $ echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bashrc
Restarting the terminal app actually loads the updated
.bashrc, and then
rbenv is installed and configured.
Another step is to also install the
ruby-build plugin, which
rbenv uses to compile and install new Ruby versions. I’ll use git to clone this plugin and upgrade it (as documented in https://github.com/rbenv/ruby-build#readme):
~ $ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
rbenv can be used to install Rubyies:
~ $ time rbenv install 3.1.2 To follow progress, use 'tail -f /tmp/ruby-build.20221110172124.19039.log' or pass --verbose No system openssl version was found, ensure openssl headers are installed (https://github.com/rbenv/ruby-build/wiki#suggested-build-environment) Downloading openssl-3.0.7.tar.gz... ︙
As a last step set this new Ruby version to be used globally:
rbenv global 3.1.2
That’s it. Ruby 3.1.2 is now available for the user an the Raspberry Pi.