Harry R. Schwartz

Code writer, sometime Internet enthusiast, attractive nuisance.

The author at the Palais du Luxembourg in Paris, November 2022. hacker news gitlab sourcehut pinboard librarything 1B41 8F2C 23DE DD9C 807E A74F 841B 3DAE 25AE 721B


British Columbia



Switching from RVM to chruby


Published .
Tags: ruby.

If you do much Ruby development you undoubtedly use a Ruby version manager. In the last few years, the Ruby community has successively adopted RVM, then rbenv, and now chruby.

I’m a stick-in-the-mud, so I’ve just stuck with RVM for the past few years. It’s not an ideal tool, but it wasn’t really broken; why fix it? I’ve kept an eye on chruby, though. A lot of folks I respect have been singing its praises, and I appreciate the simplicity of it. No monkeying with shell commands! No gemsets! So pretty! But it wasn’t quite enough to overcome my RVM inertia.

However, I’ve spent the past few weeks teaching a Rails bootcamp at Metis, and we want to teach our students the current best practices. This includes using chruby, so I figured it was time to accept the inevitable and finally switch over.

It’s actually really easy! Just heave a sigh, cross your fingers, and blow away your RVM installation:

$ rvm implode
$ rm -rf ~/.rvmrc ~/.rvm

You’re almost certainly calling an RVM script in your shell config (.bashrc, .bash_profile, .zshrc, or whatever you use). Delete that reference; you won’t need it anymore.

Next, install chruby and ruby-install. I’m assuming you’re on a Mac, but if you’re on some other Unix there are instructions in the chruby README.

$ brew install chruby ruby-install

If you try to run chruby now, your shell will complain that the command wasn’t found. This can be fixed by adding the following line to your shell’s config file:

source /usr/local/share/chruby/chruby.sh

Next you’ll want to install a current Ruby. At the time of this writing, that’s 2.1.2:

$ ruby-install ruby 2.1.2

Finally, you’ll probably want to use that as your default Ruby, so add a chruby 2.1.2 to the end of your shell config.

Boom! You’re now all set with chruby. You can install new Rubies with ruby-install and switch between them with chruby. Pretty clean.

But there’s one more thing! I (vocally) use Emacs, and it’s nice to have the correct version of Ruby available in my editor. This just requires installing the chruby package (available in MELPA) and adding (chruby "2.1.2") to your initialization.

That’ll do it! I’m finally switched over, and I’m liking chruby a lot so far. A worthwhile migration!

You might like these textually similar articles: