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

问题描述 投票:152回答:30

当我尝试安装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。

任何人都可以帮我解决这个问题。

ruby install rmagick
30个回答
67
投票

跑步时遇到了类似的问题

$ 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,获取新的配置文件,然后再次运行gem install rmagick。

在我这样做之后它对我有用。


8
投票

更新到Mavericks后我遇到了问题。它失去了很多联系。在我的情况下,我不得不刷新到pkg-config的链接

brew unlink pkg-config
brew link pkg-config

然后安装rmagick就像一个魅力。


7
投票

我更新到Mountain Lion并开始遇到同样的问题。我不得不重新安装brew,XCode,XCode工具 - 几乎整个环境!

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

brew install pkgconfig

一旦成功完成(我必须首先删除一些旧的符号链接)然后我能够成功安装RMagick gem


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

然后再次重新安装任何缺少的包。 :)


6
投票

帮我在Debian Wheezy 64bit上

 apt-get install libmagickcore-dev libmagickwand-dev

6
投票

对我来说一个问题是rmagick已经过时并且没有定期更新。如果你有一个新的ImageMagick版本,那么它可能不兼容。使用以下方法检查您的ImageMagick版本:

$ convert --version

如果ImageMagick版本> 7,则与rmagick不兼容。用户将收到诸如此类的错误

Can't install RMagick 2.16.0. Can't find MagickWand.h.
*** extconf.rb failed *** 

回到ImageMagick的第六版,直到他们更新rmagick以兼容ImageMagick的第七版。有人在一个单独的宝石中托管了相应的版本(6) - 'imagemagick @ 6'。

如果你需要rmagick工作,但目前有一个imagemagick版本7或更高版本,这里是切换的步骤:

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

4
投票

尝试重新安装Imagemagick和PkgConfig。这应该为小牛队解决

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

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 - > Preferences - > Downloads并安装命令行工具让make再次运行。 json gem安装得很好。

然后我停了下来......然后试了试

gem install rmagick

再一次。它工作得很好。


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工作


1
投票
C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.7-6/include/ImageMagick gem install rmagick

271
投票

如果您使用的是Ubuntu,安装此软件包就是为我修复它的原因:

sudo apt-get install libmagickwand-dev

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

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

0
投票

当我在OSX 10.8上安装默认的ImageMagick(没有自制软件或macports)时,我很难将同样的问题付诸实践。此线程中的建议或链接到此线程的线程的组合不适用于我(当然,修改本地安装的路径)。

我只是删除了默认的ImageMagick 6安装,然后重新安装了macports。我的rmagick安装后立即工作,没有其他更改。


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'首先加载。

现在我点击“酿造医生”进入终端,看看有什么东西搞砸了

如果您得到以下输出您的系统已准备好酿造。一切都好。如果不是ti会告诉你该怎么做。就像踢出未经编造的东西,破碎的文件库,干净的符号链接等等。

当你准备酿造时,你需要ghostscript(对于pdfs),libpng,imagemagick通过brew。

那么你可以愉快地输入:'gem install rmagick',万一你没有杀死你的红宝石设置。但这很容易通过你清理过的啤酒重新安装。

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

以及 - 版本

所以,如果你通过brew安装git并执行'git --version'并返回一些apple git版本,那么你的加载路径就会被破坏......


0
投票

在Mac OS X 10.9上,如果有关于它的警告,请尝试更新您的Xcode。 $ brew医生 我发现了一些警告,请: $ sudo / Developer / Library / uninstall-developer-folder

然后尝试: $ bundle install 再次

这对我来说很好。


0
投票

在CentOS 6.5 x64上,它非常简单:

yum install ImageMagick ImageMagick-devel

gem install rmagick -v '2.13.2'

0
投票

我能够通过升级到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

如果您遇到捆绑安装程序的问题仍然抱怨2.13.1

在您的gem文件/ gem.lock文件中升级所有依赖项

rmagick(2.13.1) - > rmagick(> = 2.15.2)


0
投票

高山3.9图像构建得到相同的错误。它配有ImageMagick 7.0.8.38-r0

要解决这个问题,你可以使用alpine 3.5和ImageMagick 6.9.6.8-r1

FROM alpine:3.5

或者使用3.5的软件包存储库安装ImageMagick 6.9.6.8-r1:

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/alpine/v3.5/main/

有关ImageMagick 7.0.x失败版本的rmagick repo中的There is an open issue。所以希望它很快就能解决。


135
投票

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

关于构建rmagick,因为它包含文件wand/MagickWand.h没有解决方法。现在看起来像是坚持使用ImageMagick 6。

在Mac OS 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安装。


0
投票

可能是您正在安装ImageMagick版本7.x.x,它将在您的usr/lib/local/include/ImageMagick7.x.x文件夹中生成不同的文件夹名称。

在ImageMagick6.x.x版本中,我们有magickwand命名文件夹,其中ImageMagick7.x.x版本命名为MagickCoreMagickWand。所以这个更新导致了一些gem安装中的问题,就像这里一样。哪个使用magick/some_header.hwand/some_header.h(意味着它们没有使用新的7.x.x ImageMagick版本更新)。

这就是我们收到此错误的原因:


    checking for outdated ImageMagick version (<= 6.4.9)... no
    checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
     .... 
    checking for wand/MagickWand.h... no

并在日志文件中这样的事情:

error: 'MagickCore/method-attribute.h' file not found
#include "MagickCore/method-attribute.h"
         ^

从官方站点:https://www.imagemagick.org/download/在您的系统中安装ImageMagick6.x.x版本并使用此命令安装它(在解压缩zip / tar之后):

./configure
make 
make install

然后做

gem install rmagick

它会工作。


您可能还需要在此处设置以下符号链接:

ln -s /usr/local/lib/libMagickWand-6.Q16.so.6 /home/marcelo/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/rmagick-2.16.0/libMagickWand-6.Q16.so.6
sudo ln -s /usr/local/lib/libMagickWand-6.Q16.so.6 /usr/lib
ln -s /usr/local/lib/libMagickCore-6.Q16.so.6 /home/marcelo/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/rmagick-2.16.0/libMagickCore-6.Q16.so.6
sudo ln -s /usr/local/lib/libMagickCore-6.Q16.so.6 /usr/lib

78
投票

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

brew install pkgconfig

下次我尝试编译RMagick gem时,发现头文件没有问题。

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


45
投票

修复此设置当前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

38
投票

我把它标记为最喜欢的,因为它似乎又回到了我需要安装RMagick所需的每个新系统(时间已过,版本号已滚动)。

Mac OS X 10.8.4

rvm 1.22.3

红宝石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

非常感谢所有在上面添加了有用答案的人!


28
投票

Mac用户使用brew

如果你可以使用ImageMagick的v6而不是7,你可以尝试这个

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

请注意,这将取消现有IM安装的链接,因此如果您的计算机上有其他项目使用ImageMagick没有问题,请务必小心。


12
投票

对于我自己和他人的启发,我通过使用建议xonico得到了关于magicwand.h的错误。 MDFind加上C_INCLUDE_PATH。然而,它给了我一个关于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命令行工具。

感谢大家的帖子!我鼓励你的答案,因为它有助于我的!


11
投票

对于Ubuntu:

sudo apt-get install imagemagick libmagickwand-dev
gem install rmagick
© www.soinside.com 2019 - 2024. All rights reserved.