更新RMagick和Imagemagick是一件痛苦的经历。我使用homebrew将我的Mac(MacOS El Capitan Version 10.11.5)上的Imagemagick版本从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 的旧项目出现了错误信息 "this installation of RMagick was configured with ImageMagick 6.8.9 but ImageMagick 6.9.5-9 is in use"。因此,我卸载了 "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.
如果无法安装RMagick,整个应用程序将无法启动。我尝试了来自这里的所有答案,但在MacOS上没有一个有效:-( 我使用Homebrew重新安装了imagemagick和pkg-config,并尝试了各种版本的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 上出现,可以安装 RMagick 的 Ruby 2.0 和 Ruby 2.3 版本。Ruby 1.8.7 和 ImageMagick 6.9.5 似乎不兼容。
- Ruby 1.8.7 ×
- Ruby 2.0.0 ✓
- Ruby 2.3.1 ✓