53
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rmagickのインストールにハマった

Last updated at Posted at 2017-01-13

tl;dr

  • rmagickを bundle install しようとしてエラー
  • imagemagicのバージョン制限があった
  • Homebrewで過去バージョンのimagemagickをインストールして解決できた

環境

  • Macbook Pro 2016 Mid

  • MacOS Sierra (10.12.2)

  • ruby

    $ ruby -v
    ruby 2.3.2p217 (2016-11-15 revision 56796) [x86_64-darwin16]
    

ハマリポイント

  • ずっと出続けていたエラーは以下

    Can't install RMagick 2.16.0. Can't find MagickWand.h.
    *** extconf.rb failed ***
    
  • 同じような解決策が色んな所で見つかるが罠

    • エラーで調べると、環境変数をゴニョゴニョしているものが多いが全く解決しない
    • ヘッダファイルが読めない→環境変数だろう→色んな人が環境変数で直ったって言ってる!→なんとかなりそう!という感じで無駄な時間を費やす
    • pkg-configとか何度もインストールし直しても駄目
  • バージョンが合わないことに全く気づかず

    • rmagickは 2.16.0 でも、imagemagick 7系に対応していない!
    • imagemagickの6系をインストールして解決できた
  • HomebrewのFomulaの古いバージョンを入れる方法が、バージョン1から代わった

    • brew versions って書いてあるドキュメントは全部使えない

解決した方法

  • 色んな所を見ながら探していたら、Googleの検索結果に、以下の情報を発見

RMagick 2.16.0 の時点では ImageMagick 7 系に未対応であり、ImageMagick 6 系を入れる必要がある。
参考) http://www.ownway.info/Ruby/rmagick/howtoinstall/windows

  • ということで、brewを操作して過去バージョンのimagemagickをインストールした

     $ cd /usr/local
     $ brew log imagemagick
     ここで表示される適当なバージョンのリポジトリを捜す
     $ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
     $ git checkout 6f014f2b7f1f9e618fd5c0ae9c93befea671f8be imagemagick.rb
     $ brew install imagemagick
    

    参考) http://qiita.com/ShuntaShirai/items/c582c0acebe2dbf03fc3

  • あとは、rmagickをインストールするだけ

    gem install rmagick -v '2.16.0'
    
53
27
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?