Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

trouble installing ruby gem json on my mac

I get this warning when trying to install the json module via ruby gems.

Any ideas?

Mac-Mini poulh$ sudo gem install json

Password:

WARNING: File '/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 /specifications/json-1.2.0.gemspec' does not evaluate to a gem specification

Building native extensions. This could take a while...

ERROR: Error installing json:

ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install json mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

like image 259
Poul Avatar asked Feb 07 '10 00:02

Poul


3 Answers

I'm running Snow Leopard and did not have a problem installing the JSON gem with the native version of ruby. It looks like that gem is being compiled from source. Did you install XCode developer tools from the OS X disc?

like image 42
Peter Brown Avatar answered Sep 23 '22 02:09

Peter Brown


I think most Mac developers would recommend that you run your own version of ruby instead of the system version that shipped with the Mac. This will give you more control over versioning and avoid environment issues like the one you are experiencing.

This is amazingly easy to do using the Ruby Version Manager. You can install multiple versions of ruby (1.8.6, 1.8.7, 1.9.1) and switch between them with ease. As a side-effect of using rvm, you no longer will have to use sudo to install gems.

like image 125
Jonathan Julian Avatar answered Sep 25 '22 02:09

Jonathan Julian


I agree that you should install your own ruby version and XCode developer tools, but in the scenario where you want to get it working for people who don't have these things installed, switch to the "json_pure" gem, which is a pure-ruby implementation (so not the fastest, but super compatible).

Require 'json' will use it automatically.

like image 36
Steven Soroka Avatar answered Sep 25 '22 02:09

Steven Soroka