Skip to content

postmodern/ruby-install

Folders and files

NameName
Last commit message
Last commit date
Feb 4, 2025
Feb 5, 2025
Feb 5, 2025
Feb 6, 2025
Feb 6, 2025
Feb 6, 2025
Feb 6, 2025
Feb 5, 2025
May 18, 2015
Jan 5, 2016
Feb 6, 2025
Feb 5, 2025
Feb 6, 2025
Feb 6, 2025
Jan 30, 2023

Repository files navigation

ruby-install

Installs Ruby, JRuby, TruffleRuby (native / GraalVM), or mruby.

Features

  • Supports downloading the latest versions and checksums from ruby-versions.
  • Supports installing into /opt/rubies/ for root and ~/.rubies/ for users by default.
  • Supports installing into arbitrary directories.
  • Supports downloading from arbitrary URLs.
  • Supports downloading from mirrors.
  • Supports downloading/applying patches.
  • Supports passing in arbitrary ./configure options.
  • Supports downloading archives using wget or curl.
  • Supports verifying downloaded archives via MD5, SHA1, SHA256 or SHA512 checksums.
  • Supports installing build dependencies from the package manager (apt, dnf, yum, pacman, zypper, xbps, brew, macports, and pkg).
  • Supports many different OSes:
  • Has unit tests.

Anti-Features

  • Does not require upgrading every time a new Ruby version comes out.
  • Does not require recipes for each individual Ruby version or configuration.
  • Does not support installing trunk/HEAD or nightly rolling releases.
  • Does not support installing unsupported/unmaintained versions of Ruby.

Requirements

  • bash >= 3.x
  • grep
  • wget > 1.12 or curl
  • md5sum or md5
  • sha1sum or sha1
  • sha256sum or sha256
  • sha512sum or sha512
  • tar
  • bzip2
  • xz
  • patch (if --patch is specified)
  • gcc >= 4.2 or clang

Synopsis

List supported Rubies and their current stable versions:

$ ruby-install

Updates then list the supported Rubies and their current stable versions:

$ ruby-install --update

Install the current stable version of Ruby:

$ ruby-install ruby

Install the latest version of Ruby:

$ ruby-install --update ruby

Install a stable version of Ruby:

$ ruby-install ruby 3.1

Install a specific version of Ruby:

$ ruby-install ruby 3.1.2

Install a Ruby into a specific directory:

$ ruby-install --install-dir /path/to/dir ruby

Install a Ruby into a specific rubies directory:

$ ruby-install --rubies-dir /path/to/rubies/ ruby

Install a Ruby into /usr/local:

$ sudo ruby-install --system ruby 3.1.2

Install a Ruby from a mirror:

$ ruby-install -M http://www.mirrorservice.org/sites/ftp.ruby-lang.org/pub/ruby ruby 3.1.2

Install a Ruby with a specific patch:

$ ruby-install -p https://raw.github.com/gist/4136373/falcon-gc.diff ruby 1.9.3-p551

Install a Ruby with a specific C compiler:

$ ruby-install ruby 3.1.2 -- CC=clang

Install a Ruby with specific configuration:

$ ruby-install ruby 3.1.2 -- --enable-shared --enable-dtrace CFLAGS="-O3"

Install CRuby with jemalloc support:

$ ruby-install ruby 3.1.2 -- --with-jemalloc

Install CRuby with YJIT support:

$ ruby-install ruby 3.2.0 -- --enable-yjit

Install a Ruby without installing dependencies first:

$ ruby-install --no-install-deps ruby 3.1.2

Uninstall a Ruby version:

$ rm -rf ~/.rubies/ruby-3.1.2

Integration

Using ruby-install with RVM:

$ ruby-install --rubies-dir ~/.rvm/rubies ruby-3.2.0-preview3

Using ruby-install with rbenv:

$ ruby-install --install-dir ~/.rbenv/versions/3.2.0-preview3 ruby-3.2.0-preview3

ruby-install can even be used with Chef.

Install

wget https://github.com/postmodern/ruby-install/releases/download/v0.10.1/ruby-install-0.10.1.tar.gz
tar -xzvf ruby-install-0.10.1.tar.gz
cd ruby-install-0.10.1/
sudo make install

PGP

All releases are PGP signed for security. Instructions on how to import my PGP key can be found on my blog. To verify that a release was not tampered with:

wget https://github.com/postmodern/ruby-install/releases/download/v0.10.1/ruby-install-0.10.1.tar.gz.asc
gpg --verify ruby-install-0.10.1.tar.gz.asc ruby-install-0.10.1.tar.gz

Homebrew

ruby-install can also be installed with homebrew:

brew install ruby-install

Or the absolute latest ruby-install can be installed from source:

brew install ruby-install --HEAD

Arch Linux

ruby-install is already included in the AUR:

yaourt -S ruby-install

Fedora Linux

ruby-install is available on Fedora Copr.

FreeBSD

ruby-install is included in the official FreeBSD ports collection:

cd /usr/ports/devel/ruby-install/ && make install clean

Known Issues

Please see the wiki.

Alternatives

Endorsements

I like the approach you're taking. Curious to see how it plays out.

-- Sam Stephenson of rbenv