Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
102
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

bundle install "rmagick" でインストールができない

結論から言うと...

Imagemagickのバージョンを6に下げると、インストールできるようになる。

RMagickはImagemagickのバージョン7に対応していない模様。
RMagickを使用するには、ImageMagickという画像変換ツールをパソコン内にインストールする必要があるが、
「brew install imagemagick」でImagemagickをインストールするとバージョンは7になってしまうので注意。
既にに入っているバージョンが7の場合は、バージョンを下げましょう。

rmagickインストール関係で参考になるQiita記事リンクを最後にまとめました。
本記事のエラー以外で躓いている方は、そちらをご参照ください。

環境

macOS Sierra: 10.12.2
Ruby: 2.3.1
Rails: 5.0.1

bundle install "rmagick"で、gemをインストールできない...

Railsにて簡易チャットアプリを作成中。
画像投稿機能を実装するために、rmagickをインストールしようとしたところ、ターミナルに以下のエラー文が表示された。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/Users/sho012b/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rmagick-2.16.0/ext/RMagick
/Users/sho012b/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20170208-64308-1vjup4v.rb extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.16.0. Can't find MagickWand.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.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/sho012b/.rbenv/versions/2.3.1/bin/$(RUBY_BASE_NAME)

To see why this extension failed to compile, please check the mkmf.log which can be found here:

/Users/sho012b/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/rmagick-2.16.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/Users/sho012b/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rmagick-2.16.0 for inspection.
Results logged to
/Users/sho012b/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/rmagick-2.16.0/gem_make.out

An error occurred while installing rmagick (2.16.0), and Bundler cannot continue.
Make sure that `gem install rmagick -v '2.16.0'` succeeds before bundling.

解決方法

1. ImageMagick(バージョン7)をアンインストール
brew uninstall imagemagick
すでにインストールされているImageMagick(バージョン7)をアンインストール

2. ImageMagick(バージョン6)をインストール
brew install imagemagick@6
もしくは以下でもできるそう。
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f0‌​14f2b7f1f9e618fd5c0a‌​e9c93befea671f8be/Fo‌​rmula/imagemagick.rb
(私はこれではうまくいきませんでした。)

インストールが成功すると、ターミナルに以下のメッセージが。

This formula is keg-only, which means it was not symlinked into /usr/local.

Older version of imagemagick

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/imagemagick@6/lib
    CPPFLAGS: -I/usr/local/opt/imagemagick@6/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/imagemagick@6/lib/pkgconfig

This formula is keg-only, which means it was not symlinked into /usr/local.
最初のこのメッセージが大事そうですね。

*"keg-only"とは

What does keg-only mean?
It means the formula is installed only into the Cellar, it is not linked into /usr/local. This means most tools will not find it. We don’t do this for stupid reasons. You can link the formula in still if you need to with brew link.(Github FAQ)

CellarにしかインストールされてないからLocalにはリンクされてないよ。多分このままだと使えないね。必要あればbrew linkしてね。みたいな感じでしょうか。うーん、Homebrewのことをまだ全然知らないので、今後調べる必要がありそうです。とりあえず現段階では「このままだと使えないからbrew linkせい!」と言う理解で留めておきます。

3.brew linkする
インストールは済んだものの、このままではImagemagickが"keg-only"と言う状態なので、以下のコマンドを実行。
brew link --force imagemagick@6

*linkとは
パッケージの有効化・無効化を行うコマンド

$ brew link <パッケージ名> #有効化
$ brew unlink <パッケージ名> #無効化

*--forceとは
上書きでインストールするコマンド?

4. RMagickのインストール
1~3を実行すると、Rmagickがインストールできるようになりました。

本エラーに対する参考リンク

GitHub Homebrew
Qiita 「SierraにRMagickを入れる」
Qiita「rmagickのインストールにハマった」
stackoverflow "ImageMagick 7 with RMagick 2.16 on MacOS Sierra Can't find MagickWand.h"

その他のRMagickインストール関連エラーQiita参考記事

RMagickのインストールで多くの人がエラーに苦しんでいるようですね...
以下ざっくりとカテゴリー分けしリンクをまとめました。本記事エラー以外のエラーでお困りの方は参考にしてみてください。
▪️pkg-config関連
rmagickのインストールでコケたのでメモ
MacでRmagickをインストール
gem install rmagickで失敗する。
▪️MagickWand.h関連
RMagickのインストールでエラー
▪️CentOS関連
gem install rmagickでchecking for Magick-config... noがでる解決方法
ImageMagick を標準パス以外にインストールしたら...
▪️brew以外でインストール
MacでImageMagickをインストール
gem install rmagick でインストール失敗
▪️Port関係
rmagickのインストールに失敗する場合

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
102
Help us understand the problem. What are the problem?