Rails - 无法安装 RMagick 2.16.0。找不到 MagickWand.h

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

我很感激这个问题以前被问过很多次,但是我已经尝试了所有可用的答案都无济于事。错误日志如下:

have_header: checking for wand/MagickWand.h... -------------------- no

"gcc -E -I/Users/mark/.rvm/rubies/ruby-2.3.3/include/ruby-2.3.0/x86_64-darwin16 -I/Users/mark/.rvm/rubies/ruby-2.3.3/include/ruby-2.3.0/ruby/backward -I/Users/mark/.rvm/rubies/ruby-2.3.3/include/ruby-2.3.0 -I.  -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7  -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7  conftest.c -o conftest.i"
conftest.c:3:10: fatal error: 'wand/MagickWand.h' file not found
#include <wand/MagickWand.h>
     ^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <wand/MagickWand.h>
/* end */

在运行ning mdfind MagickWand.h之后可以看到路径是:

/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7/MagickWand/MagickWand.h

然后我运行:

C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7/MagickWand/ gem install rmagick

但是得到的信息和以前一样。

非常感谢任何有关如何解决此问题的帮助。

我对 运行ning

也有类似的问题
$ gem install rmagick

首先,你有安装imagemagick吗?如果您不确定,运行

$ convert --version

如果这样做,您可能使用 fink 或 macports(也许是自制软件?)安装了它。发生的事情是 rvm 找不到 imagemagick 目录。

阅读后https://superuser.com/questions/361435/i-have-compiled-imagemagick-on-my-centos-and-rmagick-wont-install我通过添加

导出了imagemagick路径
$ export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig:$PKG_CONFIG_PATH"

到我的 ~/.bash_profile,获取新配置文件,然后 运行ning gem 再次安装 rmagick。

我这样做后对我有用。

经过反复试验,问题似乎出在 ImageMagick 7 与 OS Sierra 的配合不佳。我降级到 6,现在工作正常。

马克,我遇到同样的问题大约一个月了(自从 Imagemagick 7 更新以来)。我在 OSX Sierra 上使用自制软件。

对于此问题的未来访问者,您可以尝试链接和取消链接 pkgconfig (brew unlink pkgconfig && brew link pkgconfig) 或按照 Mayur 描述的那样指定路径,但如果这些方法不起作用,您需要从以下位置安装 Imagemagick 6马克所做的来源:

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

我认为问题最终出在 pkgconfig 上,因此当您看到 pkgconfig 的更新时,这应该是重试的提示。

在 osx sierra

为我工作了这个
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile

在这里知道了

这对我有用:

    $ brew unlink imagemagick
    $ brew install imagemagick@6 && brew link imagemagick@6 --force
    $ echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc
    $ bundle install

Imagemagick 7 好像不配合。这是我找到的,对我有用:

brew update
brew rm imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
bundle

如果你不想强制link你也可以这样做:

brew install imagemagick@6
PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig gem install rmagick

根据@Leo 的评论

请查看此GitHub Issue了解更多详情。

这是对我有用的(这是一个不依赖 perl 的特殊 imagemagick)

$ brew unlink pkg-config && brew reinstall pkg-config
$ brew uninstall imagemagick
$ brew install https://gist.githubusercontent.com/rootux/12cf343688b4ac28b2e9ae5f06827856/raw/3b678d601bef0902cb7ff6d9cc01b86dfd1f7932/imagemagick.rb

我得到 "Error: imagemagick: Unsupported special dependency :perl" 并且 pkg-config

有问题

生成 alpine 3.9 映像时出现同样的错误。它带有 ImageMagick 7.0.8.38-r0

要解决此问题,您可以将 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/

There is an open issue 在 rmagick 存储库中关于 ImageMagick 7 的失败构建。0.x。所以希望它会尽快修复。

这真的还是个问题吗,ImageMagick 7.x 已经有好几年了?显然它仍然是,因为像 Debian 这样的软件和那些疯狂到仍然以这些垃圾为目标的人仍在为 ImageMagick 6.x.

开发

您最好更新您的软件以使用 ImageMagick 7,而不是永远坚持使用旧版本。

适用于 Macbook Pro M1 芯片上的 macOS Monterey

尝试:

brew install imagemagick@6 && brew link imagemagick@6 --force
echo 'export PATH="/opt/homebrew/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc