RMagick と Imagemagick を更新すると、痛みを伴う有効期限が切れます。私の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は互換性がないようです。
私のシステムで何かがひどく間違っていたので、それは完全に立ち上がったのですが、インストールした後でRMagick for Ruby 1.8.7を再びインストールできました。
RVM rvm install 1.8.7
を使って新しいRubyバージョンをインストールすると、新しいGCCコンパイラもインストールされました。古いGCCバージョン4.6を削除し、GCCバージョン4.9をインストールしました。どうやらGCCはpkg-configにもかかわらず正しいヘッダを見つけることができませんでした。
Mac OSX Sierra、High Sierra、El Capitan、およびMojaveの問題を解決するには、次のようにします。
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
imagemagick@6
はkeg-only
なので、強制的にリンクする必要があります。
ImageMagick 7.0.4-4でも同じ問題がありました。適切な修正はimagemagick@6
をインストールすることです。 https://github.com/Homebrew/homebrew-core/pull/8756 あなたが誤ってあなたのimagemagick@6
を削除したり、最初からインストールされたことがない場合には==便利です。
macOsシエラ:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
を使用して、まず最新のMac High Sierraに正しくインストールされていない、インストールされたimagemagickのリンクを解除します。
brew unlink imagemagick
それから以下のコマンドを使って最新のimagemagic6をインストールしてください
brew install imagemagick@6 && brew link imagemagick@6 --force
次に、下記のコマンドを使ってgem rmagickをインストールしてください。
gem install rmagick
それは完全にうまくいきます。
うんこれは私の問題を解決します:
MacOS X Sierra:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
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
私にとっては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
$ 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
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を行うために推奨されるexport
sを使用できます。ビルド中に古いバージョンをバックアップします。
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
以下に従って、必要に応じて一部を変更してください。
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'
これを他の答えを改善するコメントとして残すという評判はまだありませんが、@ 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
Homebrewを使ってmacOS High Sierra10.13.3を(たくさんの試行錯誤の後で)解決する方法は次のとおりです。
brew uninstall imagemagick
gem install rmagick
もしあなたが既に古いバージョンのImagemagickをインストールしているのであれば、これでうまくいくはずです。 https://stackoverflow.com/a/4167436
バージョン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の最新バージョンですが、異なるバージョンを使用する必要がある場合は、気軽に変更してください
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
バージョン7.0.7-1ではシンボリックリンクを作成できますが、コンパイルは後者に失敗します。
cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagicCore/ magick
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レポで。だからうまくいけばそれはすぐに修正されます。
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のあなたのバンドラーを再開することができます。
インストールプロセスについては ImageMagickのインストールはセントで で詳しく説明しています。
とにかく...
インストール後Imagick&ImageMagick-devel&ImageMagick PHPライブラリを以下のようにインストールします。
# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick
/ usr/includeに移動します。
cd /usr/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"をきれいにしてください。 "php.ini"ファイルの "disable_functions".
# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config
...
がんばろう...