无法安装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个回答

7

这对我的Mac OsX系统有效。

安装Imagemagick:

brew remove imagemagick
brew install imagemagick

请确保正确链接pkg-config:

brew uninstall pkg-config
brew install pkg-config
brew unlink pkg-config && brew link pkg-config

安装gem
gem install rmagick

7

针对Ubuntu用户: 这个命令不能直接在Ubuntu上完成。您需要先安装一些软件包来运行此命令...:

sudo apt-get install libmagickwand-dev  

然后进行安装:

gem install rmagick

您可能遇到了同样的问题,为此,首先尝试清除apt源并删除任何损坏的软件包:

sudo apt-get update
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

如果系统检测到任何损坏的软件包,请强制删除它们(将package_name替换为您自己的软件包名称):
sudo dpkg --remove -force --force-remove-reinstreq package_name

然后再重新安装任何缺失的软件包。 :)

7

我升级到Mountain Lion后遇到了同样的问题。我不得不重新安装brew、XCode、XCode工具——基本上是整个环境!

最终,我使用phopkins的答案解决了这个问题...

brew install pkgconfig

在成功完成这个步骤后(我必须首先删除一些旧的符号链接),然后我才能成功安装 RMagick gem。


大量的拥抱和击掌。那就是我的问题。 - BJ McDuck
我想你的意思是 brew install pkgconfig - Nate Symer
谢谢 Nathaniel - 你是正确的。我已经更新了帖子。 - Tim Bull

7
我的一个问题是rmagick过时了,没有定期更新。如果您使用的ImageMagick版本太新,则可能不兼容。使用以下命令检查ImageMagick的版本:
$ convert --version

如果ImageMagick版本大于7,则与rmagick不兼容。用户将会收到类似以下的错误信息:
Can't install RMagick 2.16.0. Can't find MagickWand.h.
*** extconf.rb failed *** 

在rmagick更新兼容ImageMagick的第七版之前,请返回到ImageMagick的第六版。有人已经将相应的版本(6)托管在一个单独的gem中 - 'imagemagick@6'。

如果您需要使用rmagick,但当前拥有ImageMagick的第7版或更高版本,请按以下步骤切换:

$ gem install imagemagick@6
$ brew unlink imagemagick
$ brew link imagemagick@6 --force

6

帮助我在64位的Debian Wheezy上解决了问题

 apt-get install libmagickcore-dev libmagickwand-dev

4

尝试重新安装Imagemagick和PkgConfig,这应该可以解决Mavericks的问题。

  • brew update && brew upgrade
  • brew reinstall imagemagick
  • brew reinstall pkgconfig

2
C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.7-6/include/ImageMagick gem install rmagick

适用于Arch和Manjaro! - Fernando Kosh

2
对于一个基于Rails的应用程序,我找到了这个。
sudo apt-get install -y libmagickwand-6-headers
C_INCLUDE_PATH=/usr/include/ImageMagick-6 gem install rmagick
bundle update rmagick
bundle install

曾在 Debian Jessie 上工作过。


2
我在OS X Mountain Lion上遇到了困难(从Lion升级后),关于C_INCLUDE_PATH、PKG_CONFIG_PATH、链接各种文件等建议都不起作用。在我升级到Mountain Lion的同一天,我还将XCode升级到4.5.2,但我并没有太在意这个问题。
最终,我放弃了安装RMagick,并将工作转交给同事。
然后,碰巧我发现我正在尝试在另一个项目上使用bundle install,但无法安装json gem,因为找不到“make”。我调查了一下并发现需要进入XCode->首选项->下载并安装命令行工具,以使make再次正常工作。json gem安装成功。
然后我停顿了一下……并尝试
gem install rmagick

再试一次,它完美地运行了。


1
我遇到了这个问题,是因为我运行了OS X的迁移助手,在迁移后没有重新链接。您需要检查Wand-config --ldflags --libs的输出。在我的情况下,它给出了:
$ Wand-config --ldflags --libs
/usr/local/bin/Wand-config: line 50: pkg-config: command not found
/usr/local/bin/Wand-config: line 53: pkg-config: command not found

重新链接pkg-config、libpng和libfreetype后,变成了:
$ Wand-config --ldflags --libs
-L/usr/local/Cellar/imagemagick/6.8.8-9/lib -lMagickWand-6.Q16 -lMagickCore-6.Q16 
-L/usr/local/Cellar/imagemagick/6.8.8-9/lib -lMagickWand-6.Q16 -lMagickCore-6.Q16 

然后:

$ gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.2
Parsing documentation for rmagick-2.13.2
Done installing documentation for rmagick after 4 seconds
1 gem installed

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