Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Fix Apple’s broken 10.9.0-10.9.2 default Ruby gems installation.

On Mac OS X 10.9.0 through 10.9.2, Apple shipped a Ruby and RubyGems installation that was missing specifications for the libraries that are included with Ruby by default, which leads to the user having to install a gem like the JSON gem even though the user already has that library installed.

(This is even more problematic if you want users to be able to install gems without having to have a properly configured compiler toolchain. I.e. where you do not want users to have to install gems with C extensions, such as the JSON gem.)

This was fixed starting from Mac OS X 10.9.3.

What it should look like

The following libraries are installed by default and should have their specifications installed:

$ ls -l /Library/Ruby/Gems/2.0.0/specifications/default
-rw-r--r--  1 eloy  staff   766 Oct 28 13:26 bigdecimal-1.2.0.gemspec
-rw-r--r--  1 eloy  staff   601 Oct 28 13:26 io-console-0.4.2.gemspec
-rw-r--r--  1 eloy  staff   537 Oct 28 13:26 json-1.7.7.gemspec
-rw-r--r--  1 eloy  staff   341 Oct 28 13:26 minitest-4.3.2.gemspec
-rw-r--r--  1 eloy  staff  4836 Oct 28 13:26 psych-2.0.0.gemspec
-rw-r--r--  1 eloy  staff  1481 Oct 28 13:26 rake-0.9.6.gemspec
-rw-r--r--  1 eloy  staff  2758 Oct 28 13:26 rdoc-4.0.0.gemspec
-rw-r--r--  1 eloy  staff   762 Oct 28 13:26 test-unit-2.0.0.0.gemspec

The fix

To fix, for instance, the JSON gem, perform the following steps:

$ sudo mkdir /Library/Ruby/Gems/2.0.0/specifications/default
$ sudo curl -o /Library/Ruby/Gems/2.0.0/specifications/default/json-1.7.7.gemspec \
               https://raw.githubusercontent.com/flori/json/v1.7.7/json.gemspec

After which you should have the following:

$ ls -l /Library/Ruby/Gems/2.0.0/specifications/default
-rw-r--r--  1 root  wheel  4842 Nov  3 13:32 json-1.7.7.gemspec
@Ahmed-Mujahid
Copy link

Ahmed-Mujahid commented Sep 10, 2021

I have noticed that all you guys are having these problems since 2020 while the original solution was set for 2015 versions, and that does not work anymore. Fortunately, I have found a solution that solves the new problem, here is the link: https://www.bswen.com/2020/10/others-how-to-resolve-mac-install-cocoapods-error.html
It worked perfectly for Firebase installation on my XCode project. Let us know if you find this working or not!

having same issue after using this solution. Although after using this command
$ ls -l /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0

i had this output
total 8
drwxr-xr-x 23 root wheel 736 Oct 8 2020 ruby
-rw-r--r-- 1 root wheel 868 Jun 6 2020 ruby.h
drwxr-xr-x 4 root wheel 128 Aug 10 2020 universal-darwin19

i still followed the step and its giving me the same error

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