2012年6月17日日曜日

gem install rmagickのエラー(brewでインストール)

まず何も設定せずにgem install rmagickを実行しようとすると、


ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

checking for clang... yes
checking for Magick-config... no

とmagick-configのインストールが出来てないといわれ、弾かれます。

どうやら我らがbrewさまのお出ましです。

rmagickを使うために、imagemagickを必要とします。
久しぶりのbrewさまと向きあうため、なにが入っているか確認します。


$ brew list
autoconf cmake git mysql pcre rbenv ruby zsh
automake gdbm libyaml node pidof readline wget




うん。
さっそく行きます。
$ brew install imagemagick
brewさまも飢えてたようで、ものすごい勢いでインストールを開始します。

終わったら、$ gem install rmagick して、通ればいいんですが、

checking for clang... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

エラーを吐き出されした。「いくつかの理由でいれられねえよ」と。

てことで、我らがbrewさまの出番です。
$ brew list
するといろいろ増えてます。

次にお医者様の手を借ります。
$ brew doctor
いくつかエラーがでますが(本来であれば解消するべきw)
どうやらこの辺が怪しい


Warning: Your Homebrew is outdated
You haven't updated for at least 24 hours, this is a long time in brewland!
Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:


    erb
    gem
    git
    git-cvsserver
    git-receive-pack
    git-shell
    git-upload-archive
    git-upload-pack
    gitk
    irb
    rake
    rdoc
    ri
    ruby
    testrb


Consider amending your PATH so that /usr/local/bin
is ahead of /usr/bin in your PATH.


久しぶりのbrewさまだったので、
「アップデートしないのは人間じゃない」と怒られます(意訳してます)

てことで、
$ brew update を実行。

2つ目のエラーは、PATHがおかしいようなので、
$ export PATH=/usr/local/bin:$PATH
で通します。
エラーがなくなります。

再度、

$ gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.1
通りました。

追記:もしこれで、もう一度pathエラーが出たならこちらを参考にしてください。
http://banker0507.blogspot.jp/2012/06/brew-doctor-usrbin-occurs-before.html