LoginSignup
1
2

More than 5 years have passed since last update.

Can't install RMagick Can't find MagickWand.h.の解決策

Last updated at Posted at 2017-06-20

tl;dr

  • Can't install RMagick 2.16.0. Can't find MagickWand.h. のエラーを解決した
  • 最新のimagemagick(7系)がRMagickに対応しておらず、古いバージョン(6系)を入れる必要がある

エラー内容

bundle installした際の表示

$ bundle install
...
Can't install RMagick 2.16.0. Can't find MagickWand.h.
...

背景

RailsでCarrierWaveを導入する際、RMagickをインストールしておこうかと軽い気持ちで、Gemfileに

Gemfile
gem 'rmagick'

と記述してbundle installしたら、なかなか難しいエラーにぶち当たった。

環境

Macbook Pro Mid 2015
MacOS Sierra (10.12.5)

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
$ brew -v
Homebrew 1.2.3
Homebrew/homebrew-core (git revision 08186; last commit 2017-06-19)

原因

imagemagick導入の過程で
brew install imagemagick
を実行してインストールした最新のimagemagick(7系)がRMagickに対応しておらず、古いバージョン(6系)を入れる必要があるとのこと。
参考:rmagickのインストールにハマった

解決策

homebrewにはパッケージをバージョン指定してインストールするコマンドがないため、git checkoutを使って目的のバージョンのimagemagickをインストールした。
参考:homebrewで過去のバージョンインストールする方法

バージョン6のimagemagickをインストールする必要があるので、ログを辿り、コミット番号を調べようとするも、直近のログしか見れない

$ brew log imagemagick
Warning: homebrew/core is a shallow clone so only partial output will be shown.
To get a full clone run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

全てのログを見るために、勧められたコマンドを実行。

$  git -C "$(brew --repo homebrew/core)" fetch --unshallow
remote: Counting objects: 341611, done.
remote: Compressing objects: 100% (142673/142673), done.
remote: Total 341611 (delta 199905), reused 337827 (delta 196134), pack-reused 0
Receiving objects: 100% (341611/341611), 103.38 MiB | 3.16 MiB/s, done.
Resolving deltas: 100% (199905/199905), completed with 3733 local objects.

めっちゃ重かった。1,2分はかかった。

これで全てのログが見れるようになったため、ログを辿る。

$ brew log imagemagick 
commit b197a0693db353abf2b9c8135fc9865bfd237187
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date:   Mon Jun 12 08:48:39 2017 +0000

    imagemagick: update 7.0.6-0 bottle.

...(省略)...

commit fe4f239797d6aa7af91d7047d0e5e882ba607246
Author: ilovezfs <ilovezfs@icloud.com>
Date:   Wed Jan 11 09:57:04 2017 -0800

    imagemagick 7.0.4-3

commit 6f014f2b7f1f9e618fd5c0ae9c93befea671f8be
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date:   Sat Jan 7 19:32:15 2017 +0000

    imagemagick: update 6.9.7-3 bottle.

あった。このコミットがバージョン6の最新版のようだ。

フォーミュラが格納されているディレクトリに移動し、リポジトリをチェックアウト

$ cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
$ git checkout 6f014f2b7f1f9e618fd5c0ae9c93befea671f8be imagemagick.rb

すでに最新のimagemagickをインストールしてしまっていたので、一旦アンインストールして、キャッシュを消す。

$ brew uninstall imagemagick
Uninstalling /usr/local/Cellar/imagemagick/7.0.6-0... (1,522 files, 22.4MB)
$ brew cleanup -s
Warning: Skipping git: most recent version 2.13.1 not installed
...(省略)... 
/Users/ユーザー名/Library/Caches/Homebrew/imagemagick-7.0.6-0.sierra.bottle.tar.gz... (8.1MB) 
...(省略)... 
==> This operation has freed approximately 24MB of disk space.

再インストール。

$ brew install imagemagick
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/imagemagick-6.9.7-3.sierra.
######################################################################## 100.0%
==> Pouring imagemagick-6.9.7-3.sierra.bottle.tar.gz
==> Using the sandbox
🍺  /usr/local/Cellar/imagemagick/6.9.7-3: 1,465 files, 22.2MB

ちゃんとバージョン6がインストールされた。

再びbundle installすると、エラーなく通った!

homebrewでインストールする際のバージョン管理について勉強できた、とポジティブに捉えておこう。

1
2
0

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
1
2