How to get Ruby / Homebrew / RVM to work on Yosemite?

Ruby on-RailsRubyHomebrewOsx Yosemite

Ruby on-Rails Problem Overview


After installing Yosemite, I was unable to run brew or ruby.

I was 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 `'

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

This error can easily be fixed in the following steps:

  1. Open terminal

  2. Type nano /usr/local/Library/brew.rb

  3. In the first line change “1.8″ to “Current”, so it should look like this:

    #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0

via http://blog.ic3man.gr/2014/06/homebrew-ruby-bad-interpreter-no-such-file-or-directory/

Solution 2 - Ruby on-Rails

I updated to Yosemite and later found out brew was broken.

/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

If you haven't made any changes to brew yet, here is what I recommend. Otherwise read further below.

  1. cd /System/Library/Frameworks/Ruby.framework/Versions/
  2. sudo ln -s Current 1.8
  3. brew update
  4. sudo unlink 1.8

Already made changes to brew files and stuck in a git mess?

I tried to edit /usr/local/Library/brew.rb but the local change to my git repo was preventing brew update from pulling down updates. I tried some other solutions mentioned on this page and from other sites and I ended up with a git mess and all I wanted to do was undo everything I had done to brew.

I committed my change but it made things worse. Eventually I had to undo my commits and git reset --hard HEAD~1 until I was at the right commit-ish. I had a mess of unversioned files too (I changed files permissions in /usr/Local) so I did a git clean -f -d which removed all unversioned files and directories and got me back to where I started before I made any changes.

Solution 3 - Ruby on-Rails

Steps to fix it:

  1. Install command line tools for Xcode 6

  2. Reinstall brew:

     ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. Once brew is installed, rvm will work:

     rvm install ruby
    

Worked for me, yahoo!

Solution 4 - Ruby on-Rails

Editing the script means brew update won't work; there are local edits to tracked files which causes the git pull to fail.

I did this, which I suspect is cleaner:

cd /usr/local/Library
git pull -q origin refs/heads/master:refs/remotes/origin/master

There are no complaints from brew doctor.

Solution 5 - Ruby on-Rails

This is a conglomeration from answers from other people's posts as well as a bit of digging on Google, but I figured I'd put it up so a complete answer is in one place. Specifically this gets things to work now, but also lets you do brew updates as normal and gets everything clean again.

  1. Open /usr/local/Library/brew.rb (emacs/vi/nano/whatever)
  2. Change the first line to read: #!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0. You're just changing the "1.8" that was in that line to "Current" (make sure you keep the capital "C" otherwise git will get confused later).
  3. cd $(brew --repository)
  4. git add Library/brew.rb
  5. git commit -m "upgrading to ruby 2.0"
  6. brew update (or sudo brew update if your brew is setup to only do system changes with sudo)

Credit: a lot of this came from here, though I really recommend against doing git commit -am in your /usr/local folder.

Solution 6 - Ruby on-Rails

Like the one before said:

  1. Change to current
  2. install xcode 6

If you now have further problems with brew and ruby this should help: Somehow brew needs ruby on version 1.8, so create the folder:

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

and make a symlink:

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

Solution 7 - Ruby on-Rails

Take a look at this tutorial here: http://ryantvenge.com/2014/09/ruby-homebrea-yosemite/

It worked for me!

Solution 8 - Ruby on-Rails

I fixed this as follows:

  1. sudo chown -R $(whoami):admin /usr/local
  2. cd $(brew --prefix) && git fetch origin && git reset --hard origin/master

Solution 9 - Ruby on-Rails

brew update error can be fixed with this:

sudo chown -R $USER:admin /usr/local
cd /usr/local
git reset --hard origin/master
brew update

https://github.com/Homebrew/homebrew/issues/19140

Solution 10 - Ruby on-Rails

Note: Only do the below if you end up in a completely failed state, as this is very DANGEROUS

As an example I kept getting >$ sudo ln -s Current 1.8 > >$ brew update > >/usr/local/Library/brew.rb:18:in ': undefined method help?’ for [“update”]:Array (NoMethodError)

I just get this…(no matter what command just switch out “update” with the command) I solved the problem by asking for a buddies /usr/local folder. I then made a backup of my /usr/local folder.

>sudo mv /usr/local /usr/local.orig

I then moved his /usr/local to mine

>sudo mv ~/Downloads/local /usr/local

Note: You will likely lose some data so make sure to make a backup.

Solution 11 - Ruby on-Rails

I had problems trying to install Ruby using package managers. In fairness to these programs, I admit to having little experience with them and did not make the effort to dig deeper as most of the other responders did. I'm lazy and prefer to use a binary installer available for most opsys choices and many packages. Unfortunately, Ruby doesn't seem to supply one.

I found ruby-build easy to install (stand alone - not the plugin), and it built Ruby from sources without error and placed it where I wanted it.

Bingo - easy:) This looks like a good alternative for those of us of the package manager challenged persuasion.

Charlie

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionedenView Question on Stackoverflow
Solution 1 - Ruby on-Railsraz0rView Answer on Stackoverflow
Solution 2 - Ruby on-RailsJason RView Answer on Stackoverflow
Solution 3 - Ruby on-RailsedenView Answer on Stackoverflow
Solution 4 - Ruby on-RailsOttoView Answer on Stackoverflow
Solution 5 - Ruby on-RailsEliView Answer on Stackoverflow
Solution 6 - Ruby on-RailsVanessa BöhnerView Answer on Stackoverflow
Solution 7 - Ruby on-Railsuser790999View Answer on Stackoverflow
Solution 8 - Ruby on-RailsAlex LinView Answer on Stackoverflow
Solution 9 - Ruby on-RailsgogascaView Answer on Stackoverflow
Solution 10 - Ruby on-Railsabc123View Answer on Stackoverflow
Solution 11 - Ruby on-RailsCharles ParkerView Answer on Stackoverflow