How can I switch to ruby 1.9.3 installed using Homebrew?

I have installed ruby 1.9.3 using hombrew

brew install ruby

But default 1.8.7 is still used. How can I switch osx to use 1.9.3 as default ruby?


I suggest you take a look at rvm. You can then set it as default with rvm use 1.9.3 --default

But if you are happy with your homebrew install.

Then just change the precedence of directories in the PATH

Here is my /etc/paths

# homebrews should always take precedence
/usr/local/bin

# the default stack
/usr/bin
/bin
/usr/sbin
/sbin

This is important generally for homebrew, else the system version of git, ruby, pg_admin,... will all be used instead of the brew version.

if you say which -a ruby you'll see all the installed rubies, and the precedence in the PATH

eg.

$ which -a ruby
/Users/matthew/.rvm/rubies/ruby-1.9.3-p0/bin/ruby
/Users/matthew/.rvm/bin/ruby
/usr/bin/ruby


UPDATE: I now don't think you should change /etc/paths

Instead you need to check which of .profile, .bashrc, or .bash_login is being loaded in your shell, and just add /usr/local/bin to your path.

For me, I only have a .profile. You can create that file if none of those files already exist in your home directory.

# homebrews should always take precedence
export PATH=/usr/local/bin:$PATH

SHORT ANSWER:

after installing ruby via homebrew just do this:

brew link --overwrite ruby

and restart or reopen your Terminal  


LONG ANSWER

So I did a normal install of ruby using homebrew

brew install ruby

that installed fine BUT it was still using the system's default ruby. which I verified by doing:

which ruby 
#/usr/bin/ruby

So as per Matthew Rudy's suggestion, I checked the order of my /etc/paths, and all was good.

Then I decided to do:

which -a ruby
#/usr/bin/ruby
#usr/local/bin/ruby

so nothing was broken as such. tried to reinstall ruby again using the homebrew method, and then i found it.

Homebrew mentioned:

Warning: ruby-2.3.1 already installed, it's just not linked

so had to do:

brew link --overwrite ruby