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

1
在Linux操作系统中:
C_INCLUDE_PATH=/usr/local/include/ImageMagick-6/ gem install rmagick

正在构建本地扩展。这可能需要一些时间...

ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

        /home/vagrant/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb
...
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'

然后:
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

我在我的.bashrc文件中添加了MagickCore.pc的路径,然后创建了两个符号链接:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/ImageMagick-6/wand
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/ImageMagick-6/magick

现在:
$ gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.2
1 gem installed

砰,一切都正常运作。


1
在 Arch Linux 上安装了 imagemagick@6 后,gem 无法安装 rmagick 包,并出现以下错误。
Can't install RMagick 2.16.0. Can't find MagickWand.h

以下步骤对我有用:

  1. 将pkgconfig路径添加到.bashrc文件中

    export PKG_CONFIG_PATH="/usr/lib/imagemagick6/pkgconfig"

  2. 创建两个符号链接,如下所示

    ln -s /usr/include/ImageMagick-6/wand /usr/include/ImageMagick-6/wand

    ln -s /usr/local/include/ImageMagick/magick /usr/include/ImageMagick-6/magick


2
Arch通常不会保留这样的旧版本(我不清楚上面的imagemagick@6是什么意思),但在我的Arch系统中,这非常容易--有一个名为imagemagick6的软件包可用于extra;只需安装它,它就会删除imagemagick(即v7将被降级到v6) - jaustin
@jaustin昨天我已经在这里提到过“gem无法安装软件包”。 - Mizanur Rahman Mojumder
1
我并没有直接谈论宝石安装;我的评论涉及到将Arch包降级到ImageMagick 6。也就是说,没有必要进行所有的PKG_CONFIG...等操作,只需简单地运行pacman -S imagemagick6(假设您同意降级)。 - jaustin

1

这个问题有一些变体。大多数情况下是处理运行旧版本Ruby的遗留应用程序。

Rmagick对ImageMagick有依赖关系...但不是所有版本都可以。如果你已经走得太远,回溯可能是明智的选择:

brew uninstall imagemagick

然后使用适当的版本进行处理。
brew install imagemagick@6

然后您的路径需要进行调整并强制执行Homebrew

export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"
brew link --force imagemagick@6

然后您可以安装最新版本或有版本号的rmagick

gem install rmagick -v '2.15.4' --source 'https://rubygems.org/'

0

在构建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/

rmagick仓库中存在一个开放问题,涉及ImageMagick 7.0.x的构建失败。希望很快能够解决。


0

在OSX Maverick 10.9.1上,我花了很长时间才弄清楚它,但我以下面的方式解决了这些问题:

nano /etc/paths

改变了:
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

转换为:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

那些本地的东西,比如'brew'会首先被加载。

现在我在终端中输入'brew doctor',看看是否有什么问题。

如果你得到以下输出 Your system is ready to brew. 那就没问题了。否则它会告诉你该怎么做。比如清除未安装的东西、损坏的库、清理符号链接等等。

当你准备好使用brew时,你需要通过brew安装ghostscript(用于pdfs)、libpng和imagemagick。

然后你可以愉快地输入:'gem install rmagick',以防你破坏了你的ruby设置。但是这很容易通过清理过的brew重新安装。

PS: 另一个有用的命令是:'which convert',它会显示系统使用的imagemagick版本。

还有--version

所以,如果你通过brew安装了git,并且执行'git --version'返回一些苹果git版本,那么你的加载路径就有问题了...


0
在 CentOS 6.5 x64 上,这相当容易:
yum install ImageMagick ImageMagick-devel

gem install rmagick -v '2.13.2'

0

所有的brew选项都无法在yosemite 10.10上安装rmagick 2.13.1。

以下方法可行:

获取最新的RVM

\curl -sSL https://get.rvm.io | bash -s stable --ruby rvm install 2.1.1 rvm use 2.1.1

下载并安装软件包文件http://cactuslab.com/imagemagick(我使用pacifist进行安装)

确认MagickCore.pc文件的位置

mdfind magickcore.pc

例如:/opt/ImageMagick/lib/pkgconfig/MagickCore.pc

手动下载rmagick-2.15.2.gem文件https://rubygems.org/gems/rmagick/versions/2.15.2

从该目录中运行命令。

sudo C_INCLUDE_PATH=/opt/ImageMagick/include/ImageMagick-6/ PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig gem install --local rmagick-2.15.2.gem
如果您的bundle安装程序仍然抱怨2.13.1,请在gem文件/ gem.lock文件中升级所有依赖项。
rmagick(2.13.1)-> rmagick(> = 2.15.2)

0

我通过升级到2.13.2版本成功解决了这个问题。


0

当我在OSX 10.8上安装默认的ImageMagick(没有homebrew或macports)时,我很难解决这个问题。无论是本主题中的建议还是从本主题链接到的其他主题中的建议,都不能解决我的问题(当然要修改本地安装路径)。

我只需删除默认的ImageMagick 6安装,然后使用macports重新安装即可。我的rmagick安装立即开始工作,无需进行其他更改。


0
在 Mac OS X 10.9 上,如果出现有关 Xcode 的警告,请尝试更新Xcode。
$ brew doctor
如果您发现了一些警告,请执行以下操作:
$ sudo /Developer/Library/uninstall-developer-folder

然后再次尝试执行:
$ bundle install
这个方法对我来说效果很好。


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