RMagickのインストール:MagickWand.hが見つかりません


164

RMagickImagemagickの更新は苦痛な経験です。私のMacのImagemagickバージョン(MacOS El Capitanバージョン10.11.5)を、Ruby 2.3の1つのプロジェクトの自作で更新しました。6.9.5-9

$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09

現在、Ruby 1.8.7の古いプロジェクトは、「RMagickのこのインストールはImageMagick 6.8.9で構成されていますが、ImageMagick 6.9.5-9が使用されています」というエラーメッセージを表示することを拒否します。したがって、「rmagick」をアンインストールしましたが、再度インストールすることはできません

$ gem install rmagick -v 2.16.0
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes
checking for Magick-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... no
checking for sys/types.h... no
checking for wand/MagickWand.h... no

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

そして、それがインストールできない場合、アプリケーション全体を起動できません。私はここからすべての答えを試しましたが、MacOSではどれも動作しません:-( imagemagickとpkg-configをhomebrewで再インストールし、RMagickのさまざまなバージョンを試しましたが、成功しませんでした。2.16.0は現在RMagickの最新バージョンです。

MagicWandは、ImageMagickバージョン6.9以降で使用されているようで、マシン上で見つけることができます。

find /usr/local -name MagickWand.h
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h

find /usr/local -name MagickWand.pc
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc

gemのインストール中にこれらのパスを指定しても機能しません(上記と同じエラー):-(

C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

更新:

このエラーはRuby 1.8.7でのみ発生します。Ruby2.0およびRuby 2.3用のRMagickをインストールすることは可能です。Ruby 1.8.7とImageMagick 6.9.5には互換性がないようです。

  • Ruby 1.8.7 x
  • Ruby 2.0.0✓
  • Ruby 2.3.1✓


これは、ハリーポッターのゲームですか?
償いの制限

回答:


460

Mac OSX Sierra、High Sierra、El Capitan、Mojave、およびCatalinaの問題を解決するには、次のようにします。

brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force

imagemagick@6is keg-onlyなので、強制的にリンクする必要があります。


7
リンクするbrew unlink imagemagick前に手動でリンクを解除する必要がありましたが、機能しました。どうもありがとう。
Haris Krajina 2017

2
ワオ。ImageMagickの最新バージョンが手元にないのは大変ですが、これでうまくいきます。ありがとう!
Fomentia 2017

1
Ubuntuと完全に連携Ubuntu Ubuntu 16.04.3 LTS
violentr

55

ImageMagick 7.0.4-4でも同じ問題がありました。適切な修正は、をインストールすることimagemagick@6です。私がhttps://github.com/Homebrew/homebrew-core/pull/8756を誤って削除した場合、imagemagick@6または最初からインストールしたことがない場合に便利です。


うわー!リンクありがとうございました。私はこれを修正しようとする私の一日のほぼ半分を無駄にしました。
kalehv 2017年

14
imagemagick @ 6は樽専用なので、強制的にリンクする必要があることに注意してください。brew install imagemagick@6 && brew link imagemagick@6 --force私のためにそれを解決しました
Darren Cheng

1
素晴らしい、乾杯!これは私のために働きました:brew install --force imagemagick@6 && brew link imagemagick@6 --force
ベラ

1
はい、以前のバージョン(6x)をインストールすると間違いなく修正されます。問題は、7xバージョンでimagemagickファイルのフォルダー構造が変更されていることです。そして宝石をインストールしている間、それは6xが持っているフォルダ構造を想定しています
Prakash Raman

imagemagick @ 6にロールバックしても、残念ながらうまくいきません。再インストールして再リンクした後でも、rmagickをインストールしようとすると、次のメッセージが表示されます: Using 6.9.8 Q16 from /usr/local/Cellar/imagemagick@6/6.9.8-3. checking for outdated ImageMagick version (<= 6.4.9)... yes checking for Ruby version >= 1.8.5... yes checking for stdint.h... no checking for sys/types.h... no checking for wand/MagickWand.h... no Can't install RMagick 2.15.0. Can't find MagickWand.h.
Will Hitchcock

32

macOsシエラ:

brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

1
-1理由もなくリンクを強制したり、なぜこれが最初から悪い考えであるかを誰かに伝えたりするため。MacPortsではなくHomebrewの意味で「適切に」実行するための私の回答を参照してください。
mmlac 2017年

21

まず、最新のMac High Sierraに正しくインストールされなかったインストール済みのimagemagickを使用してリンクを解除します。

brew unlink imagemagick

次に、以下のコマンドを使用して最新のimagemagic6をインストールします

brew install imagemagick@6 && brew link imagemagick@6 --force

次に、以下のコマンドを使用してgem rmagickをインストールします

gem install rmagick 

それは完全にうまくいきます。


16

これは私の問題を解決します:

MacOS Xシエラ:

brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

14

ImageMagick 7 include/.../wand では、次のパスのように多くの点が変更されています。wand/MagickWand.h現時点でrmagic宝石にハードワイヤードされます。私の場合、プロジェクトがかなり古いため、gemを更新できませんでした。そのため、ImageMagicの古いバージョンをインストールすることになりました。

6.xxから最新バージョンをインストールできます。

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

後で使用するために固定することもできます。 brew pin imagemagick


1
私のために働いた:Mac OS10.12.X。最初にImageMagick 7をインストールしましたが、rails gem rmagickのインストールに問題がありました。
Simon Franzen 2017

11

ImageMagick 7.0.4-4で何かが変わった。wand/MagickWand.hこれ以上見つかりませんでした:

% brew unlink imagemagick && brew link imagemagick
Unlinking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks removed
Linking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks created
% gem install rmagick
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

    /Users/holger/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20170116-21103-1aikaka.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.

私のシステムにはまだImageMagick 6.9.7-3があり、

% brew switch imagemagick 6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/6.9.6-6
Cleaning /usr/local/Cellar/imagemagick/6.9.7-0
Cleaning /usr/local/Cellar/imagemagick/6.9.7-1
Cleaning /usr/local/Cellar/imagemagick/6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/7.0.4-4
75 links created for /usr/local/Cellar/imagemagick/6.9.7-3

その後、rmagick問題なくインストールできました。

% gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed

解決策はありますか?あなたと同じ問題が発生しています。
Kemal Akkoyun、2017年

私の言ったように。imagemagick 6.9に戻すと、問題が解決します。
Holger Frohloff 2017年

1
おかげで、あなたの提案に従って、それを取得して修正しました。しかし、最新のImageMagickバージョンを使用してそれを解決したかどうか、私が尋ねようとしていたことは何ですか?次に、関連する問題github.com/rmagick/rmagick/issues/256を見つけました。これも、ImageMagickをダウングレードすることを示唆しています。もう一度ありがとう。
Kemal Akkoyun 2017年

どういたしまして。まだバージョン7.xを使用して問題を解決していません。かなり早く修正されると思います。わかります。:)
Holger Frohloff 2017年

6

RMagickはimagemagickの古いバージョン、バージョン6に依存しています(下記参照)

brew install imagemagick@6

ビルド出力には警告セクションが含まれます(brew info imagemagick@6出力をクリアした場合にも利用可能):

==> Caveats
imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

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

For compilers to find imagemagick@6 you may need to set:
  export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
  export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"

For pkg-config to find imagemagick@6 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"

むしろ力連携、他のソフトウェアとの問題を引き起こす可能性があるによりないのImageMagickの新しいバージョンをサポートするには、あなたが提案し使用することができexport、それが構築しながら、RMagickの宝石は、古いバージョンを拾う作るのを:

export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
gem install rmagick

  1. 囲碁ヘルプは、アップグレードの努力に貢献あなたはRubyとCを知っていれば!

5
$ brew remove imagemagick && brew install imagemagick

$ brew uninstall pkg-config && brew install pkg-config
$ brew unlink pkg-config && brew link pkg-config

$ gem install rmagick

ヒントと提案をありがとう、残念ながら役に立たなかった:-(
0x4a6f4672

1
この答えは言及した唯一のものでpkg-configあり、それはうまくいきました。
ジェイソン・キム

pkg-configが成功の鍵です。どうもありがとうございます。
マイケルヨハン

5

私はまだこれを別の答えを改善するコメントとして残す評判はありませんが、@ Evgeniy28の答えは、新しいSierraマシンにデフォルトではインストールされないpkg-configをインストールした後でのみSierraで機能しました。

そう:

brew install pkg-config
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

成功:

$ gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
Parsing documentation for rmagick-2.16.0
Installing ri documentation for rmagick-2.16.0
Done installing documentation for rmagick after 4 seconds
1 gem installed

私のために働いた、Sierra 10.12.6
Ivan Danci

5

以下に従って、必要に応じて一部を変更してください。

brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
export PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.9-24/lib/pkgconfig
gem install rmagick -v '2.15.4'

4

バージョン7は互換性がないため、imagemagickバージョン6をインストールします。

$ brew install imagemagick@6

リンクすべきではありません- 古いバージョンを強制します。これにより、パスのバイナリが変更され、適切なbrew doctor文句が表示されます。

gemのネイティブ拡張をビルドするときにインストールされたバージョン6のヘッダーとライブラリを参照します。

$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'

注:pkgconfigがこれを担当しているため、libおよびincludeフォルダーを指定せずに動作しました。

注:6.9.10-14はimagemagick @ 6の最新バージョンですが、別のバージョンを使用する必要がある場合は自由に変更してください


3

Homebrew でmacOS High Sierra 10.13.3を(何度も試行して失敗した後)解決した方法を次に示します。

  1. RMagick 2.16.0は最新バージョンのImageMagick(バージョン7)と互換性がないようです:http ://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. imagemagickをアンインストールしました: brew uninstall imagemagick
  3. 次に、Imagemagickを次の式でインストールしました:https ://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

古いバージョンのImagemagickがすでにインストールされている場合、これは機能するはずです。 。https


2

バージョン7.0.7-1ではシンボリックリンクを作成できますが、コンパイルは失敗します。

cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagicCore/ magick

2

brewインストールスクリプトの指示に従うと、何もリンクまたはリンク解除する必要がなくなります。

brew install imagemagick@6
LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick

1

Alpine 3.9イメージのビルドで同じエラーが発生しました。付属していますImageMagick 7.0.8.38-r0ます

これを修正するには、ImageMagick 6.9.6.8-r1で alpine 3.5を使用します。

FROM alpine:3.5

または、ImageMagick 6.9.6.8-r1を3.5のパッケージリポジトリと共にインストールします。

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/alpine/v3.5/main/

ImageMagick 7.0.xのビルドの失敗に関して、rmagickリポジトリに未解決の問題があります。うまくいけば、すぐに修正されるでしょう。


0

私のシステムで何かがひどく間違っていたので、それは完全にf * dアップしましたが、私はインストールした後でRuby 1.8.7用のRMagickを再びインストールすることができました

RVMを含む新しいRubyバージョンをrvm install 1.8.7インストールすると、新しいGCCコンパイラもインストールされます。古いGCCバージョン4.6が削除され、GCCバージョン4.9がインストールされました。どうやらGCCはpkg-configにもかかわらず正しいヘッダーを見つけることができませんでした。


0

centosでのImageMagickインストールでのインストールプロセスを完全に説明します。

とにかく...
インストール後Imagick&ImageMagick-devel&ImageMagick PHPライブラリを以下のようにインストールします。

# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick

/ usr / includeに移動します

cd /usr/include

重要:ImageMagickの「MagickWand.h」を検索するには、ImageMagickフォルダーを「/ usr / include」から「/ usr / local / include」にコピーします

私はこの変更をimagick-3.4.3(ImageMagick-7)とcentos 6.5とphp56でテストし、完全に動作しました...

「ImageMagick」をすでに数回インストールしている場合は、まずそれらをすべて削除し、「ImageMagick」および「imagick」フォルダを見つけてすべて削除し、この変更でインストールプロセスを続行します。

次のコマンドを使用して、ファイルまたはフォルダーを検索します。

find / -name 'ImageMagick*'
find / -name 'imagick*'


以下の行を忘れないうちにインストールを続行します。 "php.ini"に移動して "disable_functions"を見つけ、 "proc_open、popen、proc_close"をクリーンアップしてください。imagickにこれらの関数が必要になるため、完全なインストール後にこの関数を " 「php.ini」ファイルのdisable_functions」。

# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config 
...

幸運を...


0

Ubuntuバージョン> 12で、homebrewを使用しない場合、

wget http://www.imagemagick.org/download/<required_imagemagick_version>
tar -xvf <path_to_your_downloaded_file>.tar.gz

wgetリンクで「tar.gz」ファイルの代わりに「7z」ファイルを取得している場合、

7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
sudo make install
sudo ldconfig /usr/local/lib

その後、RMagickのバンドルを再開できます。


-1

まず、以下に示すように6.xがインストールされている場合、imagemagickをアンインストールする必要はありません。あなたは、現在の「メイン」は見ることができます7.0.7-8が、6.9.1-10まだそこにあります。

$ brew info imagemagick                                                            
imagemagick: stable 7.0.7-8 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://www.imagemagick.org/
/usr/local/Cellar/imagemagick/6.9.1-10 (1,450 files, 17.5MB)
  Poured from bottle on 2015-07-26 at 09:10:58
/usr/local/Cellar/imagemagick/7.0.6-9 (1,522 files, 22.8MB)
  Poured from bottle on 2017-08-21 at 14:44:16
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula

古いバージョン6.xを持っていない場合は、その後、 6 @ ImageMagickのをインストールしてください。

2番目に、特に6ではなくimagemagickを強制的にリンクしないでください

これは、前述のRuby 1.9.3-p551でのbrewセットアップを使用してHigh Sierraで動作します。

PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.9.1-10/lib/pkgconfig  \
  gem install rmagick -v '2.16.0' -- \
  --with-opt-lib=/usr/local/Cellar/imagemagick/6.9.1-10/lib/ \
  --with-opt-include=/usr/local/Cellar/imagemagick/6.9.1-10/include/ImageMagick-6/

ri docsのビルドは失敗しますが、それらは重要ではありません。

注意:ビルドは機能しますが、RMagickが検索しているdylibパスは間違っています。これを修正できるかどうかを明確にするため、問題#278を提起しました。それ以外の場合は、libMagickWandなどの手動によるシンボリックリンクが必要です。それでも、特定のライブラリを手動でリンクする方が安全ではないかもしれませんbrew link --force

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.