无法安装RMagick 2.13.1。找不到MagickWand.h文件。

155

当我尝试安装rmagick时,出现以下错误信息:

Can't install RMagick 2.13.1. Can't find MagickWand.h.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

我使用的是Mac OSX 10.6.8操作系统,ruby版本为1.9.2p290,rvm版本为1.10.2。

请问有人能帮我解决这个问题吗?


1
也许这可以帮助:http://www.ruby-forum.com/topic/190824 - Daniel
嗨,丹尼尔。您提供的链接提供了 Debian 上 apt-get -y install libmagick9-dev 的解决方案,但遗憾的是,该解决方案在 Mac OSx 上无法使用。是否有其他替代方案? - blawzoo
尝试这个:https://github.com/maddox/magick-installer 它可以使用apt-get和C_...工作,但brew不行。 - jstreebin
1
简而言之:如果你在升级 Mavericks 后遇到了这个问题,请尝试使用 brew uninstall/reinstall imagemagick/pkgconfig(如 jwadsack 所建议的)。 - thewoolleyman
请查看我在这里的回答:https://dev59.com/-Wct5IYBdhLWcg3wKqa9#44126407 - Aleksandar Pavić
32个回答

272

如果你在使用Ubuntu操作系统,安装这个软件包可以解决我的问题:

sudo apt-get install libmagickwand-dev

5
这是答案,请接受它,而不是接受上面的那个。 - northtree
2
额,又要多用掉75.2MB的空间。我真的需要这75个新包吗? - Jonathon Horsman
4
请问我需要翻译的内容是:“@JonathonHorsman Correct me if I am wrong, but this your first time installing anything ImageMagick ? In order for rmagick gem to function you need ImageMagick developer libraries, and all of their associated dependencies. So unfortunately, yes you do need all of those packages. On the plus side, your computer will have world class image processing capabilities!”。 - SporkInventor
10
请注意,原帖作者询问的是OS X而不是Ubuntu。 - Darren Cheng
2
您还需要安装imagemagick软件包:github.com/rmagick/rmagick/wiki/Installing-on-Ubuntu - Robin Clowers
请点赞,我花了半天时间才找到这个正确答案(适用于Ubuntu 14.04)。 - pferrel

143

看起来ImageMagick 7更改了包含文件路径。

在构建rmagick时,由于它将文件包含为wand/MagickWand.h,因此没有解决方法。看起来现在只能坚持使用ImageMagick 6。

在MacOS X上(我在Sierra上测试过),我使用HomeBrew的versions tap命令:

brew tap homebrew/versions
brew install imagemagick@6

然后,使用上面安装所示的路径:

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

使用ImageMagick 6进行安装。


6
终于有东西管用了,非常感谢!顺便说一下,我也是在 Sierra 上。 - Jose Torres
4
对于那些关心PKG_CONFIG_PATH来源的人,如果你运行brew info imagemagick@6,它会告诉你这个brew公式是keg-only的,并且没有链接到/usr/local。如果需要的话,它还会告诉你设置PKG_CONFIG_PATH: /usr/local/opt/imagemagick@6/lib/pkgconfig - waynesford
1
耶稣接管方向盘!!谢谢! - Raymond Ruiz-Veve
1
这个答案简直是救星。 - gerwitz
1
这是唯一有效的答案。OSX High Sierra 10.13.4。 - dcangulo
显示剩余4条评论

79

我不想操作环境变量,因为我希望bundler能够在CI机器上独立编译这个gem。相反,我使用Homebrew安装pkg-config:

brew install pkgconfig

下次尝试编译RMagick gem时,它可以无问题地找到头文件。

(这是Mountain Lion上的pkg-config 0.28,ImageMagick 6.8.0-10和RMagick 2.13.2。)


18
在我这种情况下(升级到Mavericks后,似乎删除了所有链接的公式):brew uninstall pkgconfig imagemagickbrew install imagemagick pkgconfigbundle - jwadsack
执行 brew unlink pkgconfig 然后执行 brew link pkgconfig。这是在 Mavericks 更新之后的操作。 - Anna B

71

我在运行过程中遇到了类似的问题。

$ gem install rmagick

首先,您是否安装了ImageMagick? 如果您不确定,请运行以下命令:

$ convert --version

如果您这样做了,可能是通过fink或macports(也许是homebrew)安装的。发生的情况是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 中,然后执行 source 命令使其生效,最后运行:
gem install rmagick

我在进行以下操作后使它成功了。

1
我将PKG_CONFIG_PATH更新为/Dir/to/where/found/MagickCore.pc,但仍然出现“无法安装RMagick 2.13.1。找不到MagickWand.h”..有什么建议为什么它可能没有被拾取以及我还可以尝试什么..不确定如何使用您链接的帖子中提到的-l选项? - codeObserver
6
可能需要提及第二步,因为仅执行第一步无法成功(尽管我正在使用tmux):ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand && ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick - jackyalcine
8
在我的 Mac 上,这个命令应该改为 $ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" - linjunhalida
愿你的孩子漂亮,你的妻子更漂亮。这句话让我省去了数小时的烦恼排查时间。 - Mina
10
需要注意的是,PKG_CONFIG_PATH与pkg-config实用程序相关,该实用程序在我的Mac上默认未安装。当我执行gem install rmagick时,会出现/usr/local/bin/Magick-config: line 41: pkg-config: command not found警告。我使用brew install pkg-config安装了pkg-config,然后按照此处的说明设置了PKG_CONFIG_PATH,之后gem install成功了。 - jscott
显示剩余3条评论

47

请通过设置当前 ImageMagick 安装的包含路径来解决此问题:

使用 brew 安装 ImageMagick。

brew install imagemagick

寻找库

$ mdfind MagickWand.h
/usr/local/Cellar/imagemagick/6.7.5-7/include/ImageMagick/wand/MagickWand.h

安装 rmagick gem

$ C_INCLUDE_PATH=/path/MagickWand.h gem install rmagick

示例:

$ C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.5-7/include/ImageMagick/ gem install rmagick

3
在我的Mac上,我需要将两个目录添加到PKG_CONFIG_PATH中。 我在我的.zshrc文件中添加了这两个export语句(记得在尝试安装imagemagick之前先源代码该文件):export PKG_CONFIG_PATH="/usr/local/Cellar/imagemagick/6.7.7-6/include/ImageMagick/wand:$PKG_CONFIG_PATH"export PKG_CONFIG_PATH="/usr/local/Cellar/imagemagick/6.7.7-6/lib/pkgconfig:$PKG_CONFIG_PATH" - Don Leatham
我尝试了这个方法并解决了MagickWand.h的问题,但随后在Magick-config方面遇到了问题。 - Brett Hardin
运行以下命令:C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.5-7/include/ImageMagick/ brew install --fresh -vvvvv php54-imagick - jeremymarc
这些步骤对我来说都很好,只是需要做一点小修改。在上述步骤中,示例给出的是正确的,但是步骤中包含了文件本身的路径。我们只需要按照示例中指定的路径即可。 - maniempire
安装Imagick版本6对我很有帮助。我按照以下步骤进行: 1)brew install rmagick 2)brew tap homebrew/versions brew install imagemagick@6 3)C_INCLUDE_PATH=/usr/local/Cellar/imagemagick@6/6.9.8-4/include/ImageMagick-6/ gem install rmagick - rosnk

39

我把它标记为收藏,因为每次需要在新系统上安装RMagick时它似乎都会让我感到困扰(而且时间过去了,版本号也有所变化)。

Mac OS X 10.8.4

rvm 1.22.3

ruby-2.0.0-p247

Xcode 4.6.3开发工具已安装

$ brew install imagemagick
==> /usr/local/Cellar/imagemagick/6.8.6-3

$ brew install pkgconfig
==> /usr/local/Cellar/pkg-config/0.28

$ C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.8.6-3/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.8.6-3/lib/pkgconfig/ gem install rmagick
Successfully installed rmagick-2.13.2

感谢以上所有提供有用答案的人!


5
这是唯一对我起作用的东西。感谢您,先生。 - imderek
太棒了!我鼓励你提供一个类似的答案,说明它仍然适用于当前版本号。 - tobinjim
2
如果第一次无法正常工作,请确保使用brew uninstall卸载这两个brew软件包并重新安装它们。 - 0bserver07
1
在我的OS X Yosemite上运行良好。尝试了很多方法,这是唯一有效的方法。 - Peter Berg

29

使用brew的Mac用户

如果您可以使用ImageMagick的v6版本而不是v7版本,可以尝试以下方法

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

注意,这将取消关联您现有的IM安装,如果您的计算机上有使用ImageMagick并且没有问题的其他项目,请小心。


1
谢谢。我尝试了以上所有其他建议,只有这个在10.12.2上起作用。 - dwkns

12

为了自己和他人的启迪,我通过使用xonico的建议以及MDFind加上C_INCLUDE_PATH来解决了关于magicwand.h的错误。但是,接下来又出现了MagickCore.pc的错误。为了使其正常工作,我的最终命令必须包括两个文件,如下所示:

 C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.7-6/include/ImageMagick/ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.7.7-6/lib/pkgconfig/ gem install rmagick
显然,你的步骤会因为是否和我一样使用brew以及你要安装的imagemagick版本而有所不同。另外,正如其他人提到的那样,需要安装xcode命令行工具。
感谢大家的帖子!我会点赞你们的回答,因为它们对我的回答有所贡献!

这对我来说也是同样的情况。需要两个配置选项! - Dillie-O

11

对于Ubuntu:

sudo apt-get install imagemagick libmagickwand-dev
gem install rmagick

虽然这可能对面临与OP相同问题的Linux用户有所帮助,但OP明确指出他正在使用Mac OS,因此这个答案可能会误导。请至少提到该答案是针对Linux(哪些发行版?)的。 - lorefnon

8

我在升级到Mavericks后遇到了一个问题。很多链接失效了。在我的情况下,我需要刷新pkg-config的链接。

brew unlink pkg-config
brew link pkg-config

然后安装 Rmagick 就像个魔法一样顺利。

1
也对我有用!谢谢! - Dmitri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接