Hi there! 👋 I'm Steve. This is my website. It's a work in progress, based on this starter.


Getting started with chruby

If you’re looking for crazy simplicity in your ‘switch between multiple Rubies’ life, you may want to check out chruby. Written by Postmodern, it’s basically the simplest possible thing that can work. As in, 76 lines of shell script.

For that, you get:


  • Updates $PATH.
    • Also adds RubyGems bin/ directories to $PATH.
  • Correctly sets $GEM_HOME and $GEM_PATH.
    • Users: gems are installed into ~/.gem/$ruby/$version.
    • Root: gems are installed directly into /path/to/$ruby/$gemdir.
  • Additionally sets $RUBY, $RUBY_ENGINE, $RUBY_VERSION and $GEM_ROOT.
  • Optionally sets $RUBYOPT if second argument is given.
  • Calls hash -r to clear the command-lookup hash-table.
  • Fuzzy matching of Rubies by name.
  • Defaults to the system Ruby.
  • Supports [bash] and [zsh].
  • Small (~80 LOC).
  • Has tests.


  • Does not hook cd.
  • Does not install executable shims.
  • Does not require Rubies be installed into your home directory.
  • Does not automatically switch Rubies upon login or when changing directories.
  • Does not require write-access to the Ruby directory in order to install gems.

Kinda crazy, eh?


Most of the time, I install things from homebrew, but I actually prefered to run the setup.sh script:

wget https://github.com/downloads/postmodern/chruby/chruby-0.2.3.tar.gz
tar -xzvf chruby-0.2.3.tar.gz
cd chruby-0.2.3/

You can see the source for that script here. You’ll end up with an MRI, JRuby, and Rubinius all installed in /opt/rubies, and after restarting your shell, you should be good to go!


To see what Rubies you’ve got, just chruby:

$ chruby

to pick one:

$ chruby 1.9.3

Pretty damn simple.

Getting more Rubies?

The setup script will install ruby-build, so just use that to get more rubies:

ruby-build 1.9.3-p327 /opt/rubies/ruby-1.9.3-p327

You’ll then need to update your list of Rubies in your .bashrc or .zshrc:

  # other rubies here

If you find this tedius, you can just glob them:


Automatic switching?

Not yet. This is pretty much the only thing keeping me from saying ‘zomg use this for sure now.’

How good is it?

I don’t know, I’ve been using it for less than 24 hours. Seems good.