2012-12-13
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:
$PATH
.
bin/
directories to $PATH
.$GEM_HOME
and $GEM_PATH
.
~/.gem/$ruby/$version
./path/to/$ruby/$gemdir
.$RUBY
, $RUBY_ENGINE
, $RUBY_VERSION
and $GEM_ROOT
.$RUBYOPT
if second argument is given.hash -r
to clear the command-lookup hash-table.cd
.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/
./scripts/setup.sh
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
ruby-1.9.3-p327
jruby-1.7.0
rubinius-2.0.0-rc1
to pick one:
$ chruby 1.9.3
Pretty damn simple.
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
:
RUBIES=(
# other rubies here
/opt/rubies/ruby-1.9.3-p327
)
If you find this tedius, you can just glob them:
RUBIES=(/opt/rubies/*)
Not yet. This is pretty much the only thing keeping me from saying ‘zomg use this for sure now.’
I don’t know, I’ve been using it for less than 24 hours. Seems good.