rubymacosrubygemsosx-lionrmagick

Cannot install rmagick gem in Lion: gems can't find ruby.h


I've got a clean instal of Mac OS X Lion, and I've installed the Developer Tools. I'm trying to install some ruby gems and the ones which need native extensions aren't building.

sudo gem install rmagick

For example will not build. I get back this error:

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

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

It looks like the ruby.h header file has moved in Lion, but I don't know how to point ruby gems to it.

I've also updated rubygems itself with

sudo gem update --system

But the issue persists. Ideas?


Solution

  • First, if you're still using sudo gem, you should probably switch to RVM, which manages lots of rubies and gemsets, all in your home directory so there's no permission problems, and cleanly switches between them.

    RVM: http://rvm.beginrescueend.com

    Second, even though you say you "installed the Developer Tools" you may not have gotten XCode and all the libraries. These days XCode for Lion is available on the Mac App Store -- for free, thankfully, though it was $4.99 for a few months, and annoyingly, the Leopard and Snow Leopard compatible versions of XCode are not on the Mac App Store.

    XCode: http://itunes.apple.com/us/app/xcode/id448457090?mt=12

    Third, rmagick depends on ImageMagick. The easiest way to get that these days is via HomeBrew (MacPorts had its day, but everybody's brewing now).

    HomeBrew: Link

    After all that, the following should work (and just now worked for me on my Lion laptop):

    brew install imagemagick
    gem install rmagick