Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save runlevel5/73ece54ba5b3a17e8bb2 to your computer and use it in GitHub Desktop.
Save runlevel5/73ece54ba5b3a17e8bb2 to your computer and use it in GitHub Desktop.
How to replace broken stock Ruby on OSX 10.10 (Build 14A238X) (developer release - 6/6/2014)

The stock version that comes with OS X 10.10 DP1 is know to to suffer following errors:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/yaml.rb:4:in `<top (required)>':                                                                           
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- psych (LoadError)
  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/yaml.rb:5:in `<top (required)>'
  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  from /usr/local/bin/hub:190:in `<main>'

The only way to resolve and without breaking things is to use the stock Ruby in OS X 10.9.

Purge the broken version on OS X 10.10

sudo rm -rf /System/Library/Frameworks/Ruby.framework/
sudo rm /usr/bin/erb
sudo rm /usr/bin/gem
sudo rm /usr/bin/irb
sudo rm /usr/bin/rake
sudo rm /usr/bin/rdoc
sudo rm /usr/bin/ri
sudo rm /usr/bin/ruby
sudo rm /usr/bin/testrb

Backup the working version on OS X 10.9

Make sure you ask your friends who are still on OS X 10.9 to lend you their machines so you could backup the stock version there:

tar cjvf stock-ruby-osx-maverick.tar.bz2 /System/Library/Frameworks/Ruby.framework/

Restore OS X 10.9 version to OS X 10.10

tar xjvf stock-ruby-osx-maverick.tar.bz2
mv ./System/Library/Frameworks/Ruby.framework/ /System/Library/Frameworks/
chown -R root:wheel /System/Library/Frameworks/Ruby.framework/
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/erb /usr/bin/erb
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/gem /usr/bin/gem
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/irb /usr/bin/irb
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rake /usr/bin/rake
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rdoc /usr/bin/rdoc
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ri /usr/bin/ri
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby /usr/bin/ruby
sudio ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/testrb /usr/bin/testrb

sudo ln -sf /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/universal-darwin14/ruby/config.h /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby/config.h
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment