web-dev-qa-db-ja.com

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

RMagickImagemagick を更新すると、痛みを伴う有効期限が切れます。私のMac上のImagemagickバージョン(MacOS El Capitanバージョン10.11.5)をRuby 2.3のあるプロジェクト用の自作で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を再インストールしました。 .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でのみ発生し、RMagick for Ruby 2.0およびRuby 2.3をインストールすることは可能です。 Ruby 1.8.7とImageMagick 6.9.5は互換性がないようです。

  • Ruby 1.8.7 x
  • Ruby 2.0.0✓
  • Ruby 2.3.1✓
145
0x4a6f4672

私のシステムで何かがひどく間違っていたので、それは完全に立ち上がったのですが、インストールした後でRMagick for Ruby 1.8.7を再びインストールできました。

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

0
0x4a6f4672

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

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

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

412

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

53
Raymond Cox

macOsシエラ:

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

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

brew unlink imagemagick

それから以下のコマンドを使って最新のimagemagic6をインストールしてください

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

次に、下記のコマンドを使ってgem rmagickをインストールしてください。

gem install rmagick 

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

20

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

MacOS X Sierra:

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

ImageMagick 7では、include/.../wand、およびwand/MagickWand.hが現在rmagic gemに組み込まれています。私の場合は、プロジェクトがかなり古いため、gemを更新することはできませんでした。それで、私はImageMagicのより古いバージョンをインストールすることになった。

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

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

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

14

私にとっては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
11
Holger Frohloff
$ 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
5
Yury Lebedev

RMagickは古いバージョンのimagemagickバージョン6に依存します。(下記参照) Homebrewはこれをkeg-onlyパッケージとして提供しています。

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"

doesが新しいバージョンのimagemagickをサポートするという他のソフトウェアで問題を引き起こす可能性がある強制リンクではなく、RMagick gem pickを行うために推奨されるexportsを使用できます。ビルド中に古いバージョンをバックアップします。

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. Go アップグレード作業に貢献するのを手伝ってください あなたがRubyとCを知っていれば!
5
Phil Calvin

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

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'
5
Lalit Kumar

これを他の答えを改善するコメントとして残すという評判はまだありませんが、@ 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
4
Andrew Brown

Homebrewを使ってmacOS High Sierra10.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/4b03cbeab16cc0bc729bbc6d275402d
  4. gem install rmagick

もしあなたが既に古いバージョンのImagemagickをインストールしているのであれば、これでうまくいくはずです。 https://stackoverflow.com/a/4167436

3
iGian

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

$ brew install imagemagick@6

link - より古いバージョンを強制するこれはあなたのパスのバイナリを変更し、良い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の最新バージョンですが、異なるバージョンを使用する必要がある場合は、気軽に変更してください

2
wlads

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
januszm

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

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

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

これを修正するには、Alpine 3.5を ImageMagick 6.9.6.8-r1 と組み合わせて使用​​します。

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
Martin Zinovsky

Ubuntuバージョン12以上で自作を使用していない場合、

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のあなたのバンドラーを再開することができます。

0

インストールプロセスについては ImageMagickのインストールはセントで で詳しく説明しています。

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

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

/ usr/includeに移動します。

cd /usr/include

重要:ImageMagickが "MagickWand.h"を見つけるために、 "/ usr/include"から "/ usr/local/include"にImageMagickフォルダをコピーしてください。

この変更を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"をきれいにしてください。 "php.ini"ファイルの "disable_functions".

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

がんばろう...

0
Ferhad Konar