更新RMagick和Imagemagick是一个痛苦的经历。我已经用自制软件更新了我的 Mac 上的 Imagemagick 版本(MacOS El Capitan 版本 10.11.5),用于 Ruby 2.3 中的一个项目6.9.5-9
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,并尝试了各种版本的 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,可以为 Ruby 2.0 和 Ruby 2.3 安装 RMagick。Ruby 1.8.7 和 ImageMagick 6.9.5 似乎不兼容。
要解决Mac OSX Sierra、High Sierra、El Capitan、Mojave、Catalina、Big Sur 和 Monterey(M1 芯片)中的问题,您可以执行以下操作:
brew unlink imagemagick brew install imagemagick@6 && brew link imagemagick@6 --force
imagemagick@6是keg-only,所以你需要强制链接。
imagemagick@6
keg-only