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