12

I'm learning rails from different books that use different versions of both ruby and rails. Right now I have ruby 1.87 installed on my Mac OS X Snow Leopard (in /usr/bin), but need to also use ruby 1.9 for a different rails application.

Can anyone tell me how to make this work? I'm new to this, so as many instructions as possible would be greatly appreciated.

12

There are two "Ruby version managers" out there, which you can choose from:

These were built for keeping multiple versions of Ruby on the same system. Once you've installed them, and installed your own Ruby version, you won't mess with your system's Ruby and its Gems, which is the greatest benefit.

Which one should I choose?

Both do the same thing, but they follow different philosophies; rbenv tries to be more lightweight with optional plugins, while is RVM more full-featured when it comes to installing Rubies and keeping different Gemsets. So the choice is up to you.

I'd personally recommend rbenv for its simplicity. I've been using it since years and it has always worked well. Previously I would have recommended RVM (and an earlier version of this answer actually mentioned it), but I feel it's harder to get into.

How do I install them?

If you choose rbenv:

  • Follow the installation instructions
  • Install ruby-build
  • Run rbenv install x.x.x where x.x.x is the version (use rbenv install --list to see which ones are available
  • Run rbenv global x.x.x to change your global Ruby version

If you choose RVM:

  • Use the secure installation method
  • Read the installation instructions — you probably want the single-user configuration
  • Use rvm list known to list available Rubies and then run rvm install x.x.x to install a specific version.
  • Use rvm use x.x.x --default to change your default Ruby
  • 1
    See also rbenv. – grawity Sep 27 '11 at 17:44
  • @grawity Why not post another answer? Good to have alternatives, haven't really looked into rbenv yet. – slhck Sep 27 '11 at 17:47
  • thanks so much, does it also help switch between versions of Rails? different books I'm using employ 3.05 (I think) and 3.1 and it's causing problems... – Michael Sep 27 '11 at 18:14
  • I tried the install line you wrote (and which is also on rvm site) and got an error message: bash: line 152: git: command not found bash: line 154: git: command not found – Michael Sep 27 '11 at 18:17
  • Ah, you need git, of course. Sorry, I forgot that. You can install Git with the OS X installer (just select the latest version at the top). – slhck Sep 27 '11 at 18:22
6

I think rbenv deserves at least its own answer.

There is a constant battle between fans of rbenv and those of RVM but I personally like rbenv a lot more. As the Sam Stephenson (the author) states, rbenv it solely concerned with switching Ruby versions (as opposed to RVM, which does a lot more).

On OS X, it's especially easy to give it a try. Just follow the excellent installation instructions on the Github page (if you have Homebrew installed, it's basically just a brew install rbenv ruby-build).

As for switching Rails versions, I once wrote an article about that which my be of interest for you.

  • 1
    Here's a brief description of rbenv's author on the main differences with RVM and reasons to choose rbenv. The simplicity of rbenv was the main reason for me to migrate away from RVM. Managing sets of application-specific gems is IMO better done with Bundler - you don't need a Ruby version manager for that. – Jochem Schulenklopper May 31 '15 at 13:32
  • Exactly – managing sets of application-specific gems is Bundler's job. I have never been a fan of gemsets tied to version managers. – Michael Trojanek Jun 16 '15 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.