Installing Ruby with ruby-install

30 Jan 2019 17:40 direnv ruby

Install ruby-install:

mkdir -p ~/.direnv/
cd ~/.direnv/
wget -O ruby-install-0.8.3.tar.gz \

tar -xzvf ruby-install-0.8.3.tar.gz
ln -sf ruby-install-0.8.3 ruby-install

Create ~/.direnv/bin/ruby-install:

mkdir -p ~/.direnv/bin/
cat > ~/.direnv/bin/ruby-install <<'EOF'
~/.direnv/ruby-install/bin/ruby-install \
    --no-install-deps --src-dir ~/.rubies/src --cleanup $@

chmod +x ~/.direnv/bin/ruby-install

The --no-install-deps above prevents ruby-install from attempting to, well, install dependencies. If you leave this off, it’ll run a sudo apt install (or whatever) on your behalf, which leaves you with an annoying password prompt.

The list of dependencies is in the dependencies.txt file, so we can install them ourselves:

sudo apt install $(
grep '^apt:' \
    ~/.direnv/ruby-install/share/ruby-install/ruby/dependencies.txt | \
    cut -d: -f2- )

Then install your chosen Ruby version (e.g. 2.6.6):

~/.direnv/bin/ruby-install ruby 2.6.6

The above command will install Ruby 2.6.6 to ~/.rubies/ruby-2.6.6, which is where direnv will look for it.

Listing available Ruby versions

$ ~/.direnv/bin/ruby-install
Stable ruby versions:
... etc.

Updating available Ruby versions

$ ~/.direnv/bin/ruby-install -L
>>> Downloading latest ruby versions ...
>>> Downloading latest jruby versions ...

Edited 2021-12-04: Update to ruby-install 0.8.3; more current Ruby versions.