If you’ve done any development on OS X, chances are you’ve run into various apps and tools that require different versions of Ruby. Manually installing and maintaining multiple versions of Ruby is a pain. Fortunately, there are tools to make this process easier. Rbenv is a lightweight, focused tool that helps you manage different versions of Ruby and switch between them as needed. You can even set the specific Ruby version for your app to keep your team on the same page.

Installation

There are several paths to installing rbenv. The simplest is to use homebrew. (If you don’t have homebrew, it’s easy to install. Go here.)

First, make sure your homebrew is up-to-date.

1 brew update

Then, install rbenv and ruby-build.

1 2 brew install rbenv brew install ruby-build

Once it is done installing, you need to update your profile. This is generally ~/.bash_profile. Open it in your favorite editor, and add the following line.

1 eval "$(rbenv init -)"

Now execute that in your current bash session by using source .

1 source ~/.bash_profile

Rbenv will be setup and ready to use.

rbenv Basics

The only installation of Ruby that you will have in rbenv at this point is the system version. If you type the following command, it will show you what versions are installed.

1 rbenv versions

This will show an asterisk next to the version rbenv is currently using. To install a new version of Ruby, use the rbenv install command. For example, to install Ruby 2.0.0-p247:

1 2 rbenv install 2.0.0-p247 rbenv rehash

This will install version 2.0.0-p247 under ~/.rbenv/versions/. The rehash command tells rbenv about the new executables. You should use this command any time you install a new version of Ruby or install a gem that includes commands. (You can read about the rehashing process here.) You can use this version globally by using the global command:

1 rbenv global 2.0.0-p247

Or, if you’d like to specify that this version should be used in a specific directory, use the local command:

1 rbenv local 2.0.0-p247

This will create a file named .ruby-version in the current directory that states the version of Ruby to use while in this directory. Rbenv looks for this file when you use Ruby commands. This provides the ability to ensure everyone on your team is using the same version of Ruby when developing your app.

That’s it, you’re up and running with rbenv! For additional details and advanced features of rbenv, check out the official GitHub repository.