読者です 読者をやめる 読者になる 読者になる

放浪エンジニアのLog

少しハッピーになれる開発

rmagick の 失敗原因と解決方法をまとめてみた

IT mac rails rmagick ImageMagick

Railsの新環境を整えている際に発生した rmagick 入らない問題について結構はまったので、調べた内容をまとめました。どこかで誰かの役に経てれば嬉しいです。

また、rmagick は調べてみると沢山の人が様々な原因で install 失敗しているみたいなので、記事の下の方に失敗原因別に対象方法をまとめました。


ちなみに、私が install 失敗していたときの特徴ですが

  • ImageMagick 7. x 系である
  • [ checking for wand/MagickWand.b ]と表示された
  • wand/MagickWand.h file not found (ファイルは存在するのに...)
  • 画像のようなエラーが表示

f:id:kno75:20170121201744p:plain

でした。
https://images-fe.ssl-images-amazon.com/images/I/51wL43bSolL._SL75_.jpg

失敗の原因

とりあえずログから失敗原因をみてみると、 [ MagickWand.h file not found ] となっている。
しかし、MagickWand.h を find で検索してみると、ちゃんと入っている....

そこで再度エラーを見直してみると、 #include <wand/MagickWand.h>となっている。....ん?
自分の環境をみてみると MagickWand/MagickWand.h になってる...だと....


どうやらImageMagickさんのディレクトリ名が変わっている疑惑がでてきた。
そこで ImageMagick のGit のリポジトリを見に行くと
github.com

やっぱり変わってる!?なんという罠...orz

現時点(2017年1月) ではまだ rmagick さんが ImageMagick 7系のディレクトリ構成変更に対応していないっぽい。

解決方法

そんなわけで、ImageMagick 7系だと rmagick が入らないため、ImageMagickの6系を入れなくてはいけない。

手順1 : まずは uninstall
今入っている ImageMagick 7系のuninstall
(複数バージョンを入れていると上手く動かないらしい)

$ brew uninstall imagemagick


手順2 : ImageMagick の6系をinstall
最新のMac 環境だと古いバージョンの brew install は色々と面倒です(brew verionsはもう使えない)。
ですが、入れたい過去のバージョンの git の hash がわかっていれば、入れることが可能なのです!
参考までに、以下のコマンドで ImageMagick 6系が入ります。

$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb

※ このrmagick が入らない問題は、すでにIssueに上がってましたね
Now RMagick 2.15.4 can't be built with ImageMagick 7.0.x · Issue #256 · rmagick/rmagick · GitHub


手順3 : rmagick の install
最後に rmagick を install して終了です!

$ gem install rmagick
以上で完了になります
※ もしかしたら pkg-config も再インストールしてあげるとよいかもしれません。
 (筆者はしていませんが)



その他 rmagick install で失敗する原因と解決方法

今回の原因以外の rmagick 失敗原因と・解決方法を以下にご紹介です。



原因1 : ImageMagick が入っていない人
この場合は [ imagemagick ] が純粋に入っていないだけなので、そんな人はまず imagemagick を入れてあげる

$ brew install imagemagick
更に、[ pkg-config ] も必要なため入れてあげる。
※ 再インストールして上手くいった人もいるらしいです
$ brew install pkg-config
最後に rmagick を入れて完了です
$ gem install rmagick




原因2:PKG_CONFIG_PATHの未設定問題
こちらは ImageMagick は入っているが、以下のようなエラーメッセージが表示される場合
Package MagickWand was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickWand.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickWand' found
https://images-fe.ssl-images-amazon.com/images/I/41CLQD882zL._SL75_.jpg


これはエラーメッセージの通り MagickWand.pc にパスが通っていないためである。
そのためまずは MagickWand.pc を探す

$ updatedb
$ locate MagickWand.pc
/usr/local/ImageMagick/lib/pkgconfig/MagickWand.pc
/usr/local/src/ImageMagick-6.7.5-6/wand/MagickWand.pc
みつけたらパスを通してあげて、install
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ bundle install



その他にも失敗原因とか見つけたらあげておきます