Create a gist now

Instantly share code, notes, and snippets.

Homebrew, Ruby, and Rails on OS X 10.10

OS X 10.10 Guide

Here's what I did to get things working.

1. Install Xcode 6

Yep, over at: https://developer.apple.com

2. Install the Command Line Tools (CLT)

http://adcdownload.apple.com/Developer_Tools/command_line_tools_os_x_10.10_for_xcode__june_2014/command_line_tools_for_osx_10_10_june_2014.dmg (thanks @thomaslindstrom)

3. Install Homebrew

Copy/pasted from the site:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

4. Update the brew Script

Open up /usr/local/bin/brew with your favorite editor.

I had to comment out the brew system detection, so that the last 6-7 lines looked like this:

#BREW_SYSTEM=$(uname -s | tr "[:upper:]" "[:lower:]")
#if [ "$BREW_SYSTEM" = "darwin" ]
#then
#    exec "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@"
#else
    exec ruby -W0 "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@"
#fi

5. Point Ruby 1.8 at Ruby 2.0

It looks like Homebrew somehow depends on Ruby being in Versions/1.8 (though even Mavericks ships with 2.0). Until Homebrew addresses this, we'll symlink our system version of Ruby to the one Homebrew looks for.

Create the folder:

sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin

Then symlink the binary:

sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

6. Hack away!

My subsequent brew install commands seemed to work fine (ruby-build, redis, etc...). Along with rbenv, etc.

You'll probably need to install Bundler with gem install bundler if you haven't already.

Improve this Gist!

Leave a comment if something didn't work.

@shemerey
shemerey commented Jun 3, 2014

I can't get CLT could provide direct link on it ?

@osulyanov
Your session has expired.

Can you upload CLT on some cloud or torrent, please?

@pearofducks

If you open Terminal and run git it should automatically kick off the download for CLT in any OSX since Mavericks - this worked in early Mavericks betas IIRC, so it should work in 10.10.

@osulyanov

Can't download CLT from System Update, catch error about this package not available.

@jeffleeismyhero

When using rbenv, I had to set my default version of ruby from System to one installed with rbenv. In my case that turned out to be: rbenv global 2.0.0-p247

@PatrickTulskie

That sounds good. How much of a wreck is everything else?

@JJJ
JJJ commented Jun 3, 2014

Worked great; thanks.

To get the CLT, I used Safari and was logged into my Apple developer account; the download started immediately.

@bendyorke

I couldn't get ruby-build to work through homebrew - although it installed, $ rbenv install didn't work. $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build (pulled from ruby-build github) got it working though

@metalim
metalim commented Jun 3, 2014

Short note for those who upgrade to OSX 10.10 instead of fresh install: no need to upgrade Xcode from 5.1.1, just start it once, to auto-update CLT.
The only step I had to do then was #5: Point Ruby 1.8 at Ruby 2.0.
Then brew update & brew upgrade worked fine.

@bibstha
bibstha commented Jun 3, 2014

@osulyanov did you get CLT from somewhere? Turns out ones who don't have access to Apple Developer Program cannot really download the new CLT (I installed 10.10 from torrent). Can someone share the CLT dmg file via torrent or file sharing service?

@haincha
haincha commented Jun 4, 2014

I would also love a link to the CLT, since I am not a registered Apple Dev. Also found from the usual places.

@DiederikvandenB

+1 on a CLT mirror

@haincha
haincha commented Jun 4, 2014

Thanks!

@avelino
avelino commented Jun 4, 2014

Not have access in adcdownload: http://thepiratebay.se/torrent/10283835/xCode_6_beta_(6A215l)

Install...

sudo xcode-select -switch /Application/Xcode6-Beta.app/Contents/Developer/

@caarlos0
caarlos0 commented Jun 4, 2014

+1 CLT mirror

@DiederikvandenB

People looking for the CLT outside of the developer program can find it here:
http://thepiratebay.se/torrent/10291112/X_Code_6_Beta_with_Command_Line_Tools_for_OS_X_10.10_Yosemite

Make sure to disable the Xcode.dmg from the torrent if you already have it to avoid having to wait too long for your download.

@caarlos0
caarlos0 commented Jun 5, 2014

brew cask don't work...

@bendyorke

If anyone is using zsh and having issues with git, the people on SO were awesome here: http://stackoverflow.com/questions/24022582/osx-10-10-yosemite-beta-on-git-pull-git-sh-setup-no-such-file-or-directory

the solution was to append the following to your zshrc: [[ $(env | grep -c PATH) < 2 ]] || /usr/bin/login -f $USER

I know this doesn't apply to everyone, but zsh + git is a pretty popular combination :). It also fixes warnings that pop up with $ brew doctor regarding the path variable which was driving me crazy

@amoblin
amoblin commented Jun 5, 2014

For Point 5. Point Ruby 1.8 at Ruby 2.0

Why not just modify brew.rb to change 1.8 to 2.0 ?

head -1 /usr/local/Library/brew.rb 
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -W0
@caius
caius commented Jun 5, 2014

Instead of installing the CLT I instead installed Xcode 6 and changed it to be the active developer tools install with:

sudo xcode-select --switch /Applications/Xcode6-Beta.app/Contents/Developer/

And then I could use git, etc without having to install anything else.

@caius
caius commented Jun 5, 2014

And it looks like Homebrew/legacy-homebrew@1bbcc4b means no need for step 5 to make ruby 1.8 appear to be available for ruby - homebrew now just uses ruby 2 in the system instead.

@caarlos0
caarlos0 commented Jun 5, 2014

About homebrew-cask, seems like some iTerm weirdness: caskroom/homebrew-cask#4685

@jwaldrip
jwaldrip commented Jun 5, 2014

Has anyone had any issue installing ruby 1.9.x on 10.10? I am getting the following error:

$ rbenv install 1.9.3-p547
Downloading yaml-0.1.6.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/7da6971b4bd08a986dd2a61353bc422362bd0edcc67d7ebaac68c95f74182749
Installing yaml-0.1.6...
Installed yaml-0.1.6 to /usr/local/var/rbenv/versions/1.9.3-p547

Downloading ruby-1.9.3-p547.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/9ba118e4aba04c430bc4d5efb09b31a0277e101c9fd2ef3b80b9c684d7ae57a1
Installing ruby-1.9.3-p547...

BUILD FAILED

Inspect or clean up the working tree at /var/folders/1s/ct5g_n2s5l7c0z8jm2f39gp00000gn/T/ruby-build.20140605094148.16505
Results logged to /var/folders/1s/ct5g_n2s5l7c0z8jm2f39gp00000gn/T/ruby-build.20140605094148.16505.log

Last 10 log lines:
    0 enumerator.so

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

make: *** [encdb.h] Abort trap: 6
make: *** Waiting for unfinished jobs....
make: *** [.rbconfig.time] Abort trap: 6
@brandontravis

After starting with a fresh install of OS 10.10, download Xcode6-beta and the new command line tools and then doing a fresh install of homebrew using the above curl link, I still cannot run brew doctor. I took it a step further to follow the steps above and still brew doctor hangs. for the most part, it looks as though everything else with homebrew is working?

Not sure what exactly is causing this.

@jwaldrip
jwaldrip commented Jun 5, 2014

@idealbrandon, are you using terminal or iterm2?

@fernandoaleman

@jwaldrip, I just encountered the same issue. Have you been able to resolve it?

@Showtimes

@caius Thank you! Was stuck until I did this.

@scottfister

I keep getting this error: /usr/local/Cellar/rbenv/0.4.0/libexec/rbenv-hooks: line 32: cd: ../../../Cellar/rbenv-gem-rehash/1.0.0/etc/rbenv.d/exec: No such file or directory whenever I try to run something like ruby -v. It only occurs when I have if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi in my .bash_profile. I installed with the instructions above and cannot figure this out! Any help is appreciated. Edit: I fixed this issue by doing brew install rbenv-gem-rehash.

@edenchen

has anyone got this to work?

getting this error on brew update:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

getting this error on irb:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in mkdir': Permission denied - /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14 (Errno::EACCES) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:infu_mkdir'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:219:in block (2 levels) in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:inreverse_each'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:in block in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:in mkdir_p' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:210:inwrite_gem_make_out'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:132:in build_error' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:171:inrescue in build_extension'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:156:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:in contains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:inblock in find_inactive_by_path'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in each' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:intry_activate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:150:in block in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:158:inblock in each_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:167:in each_sublocale' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:157:ineach_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:145:in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:124:infind'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:108:in load' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:32:ininitialize'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:in new' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:ininit_config'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:16:in setup' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb.rb:380:instart'
from /usr/bin/irb:12:in `

'

@jimbocortes

had to do this
CONFIGURE_OPTS="--with-openssl-dir=brew --prefix openssl --with-gcc=clang" rbenv install 2.1.2

or else

BUILD FAILED

Inspect or clean up the working tree at /var/folders/96/06k_d7m11cxf6z245d451_mr0000gn/T/ruby-build.20140617151358.28674
Results logged to /var/folders/96/06k_d7m11cxf6z245d451_mr0000gn/T/ruby-build.20140617151358.28674.log

Last 10 log lines:
checking for gcc-4.2... gcc-4.2
couldn't understand kern.osversion 14.0.0' checking for gcc... (cached) gcc-4.2 checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... configure: error: in/var/folders/96/06k_d7m11cxf6z245d451_mr0000gn/T/ruby-build.20140617151358.28674/ruby-2.1.2':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use --host'. Seeconfig.log' for more details

@rkeniger

The OpenSSL stuff didn't work for me, but just using CONFIGURE_OPTS="--with-gcc=clang" rbenv install 2.1.1 worked fine. Thanks for the tip.

@danielbayerlein

Command Line Tools for OS X Yosemite 10.10

@chrisdelbuck

CLT Download link fails for me unless coming directly from https://developer.apple.com/downloads/index.action

@dja
dja commented Jul 19, 2014

@rkeniger That worked awesomely. Thanks!

@bdcheung

@rkeniger Worked for me too, thanks!

@Nikamura
Nikamura commented Aug 7, 2014

You can install CLT tools by entering

    gcc

in terminal

@philippbosch

The OpenSSL configure options in @jimbocortes' comment were f***ed up by the markdown parser, I believe. This worked for me:

CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl` --with-gcc=clang" rbenv install 2.1.2 
@caseyhelbling

@philippbosch that worked for me. Thanks!

@fskirschbaum
macbookpro:~ fskirschbaum$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Whoops, the Homebrew installer has moved! Please instead run:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Also, please ask wherever you got this link from to update it to the above.
Thanks!
@Miladiir
Miladiir commented Oct 9, 2014

@fskirschbaum Homebrew works fine with Yosemite now, even without following this gist.

@pph7
pph7 commented Nov 26, 2014

Works for me. Thx!

@dsibiski

@philippbosch Thank you so much! After trying tons of different commands and options, this is the only one that finally worked.

@iSevenDays

THANKS! Struggled for hours!

@doctorallen

I just installed this and it told me to get you to update the curl command for installing homebrew.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
@HenriqueCarvalho

@scottfister, thank so much! You solved my problem that I have been studying it for 3 days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment