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


154

当我尝试安装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
也许这会有所
Daniel

嗨,丹尼尔(Daniel)。不幸的是,您提供的链接为Debian提供了apt-get -y install libmagick9-dev 不适用于Mac OSx的解决方案。还有另一种选择
blawzoo 2012年

试试这个:github.com/maddox/magick-installer使用apt-get,C _...,brew
没用

1
TL; DR:如果在Mavericks升级后得到此消息,请尝试brew卸载/重新安装imagemagick / pkgconfig(如jwadsa​​ck所建议)
thewoolleyman 2014年

Answers:


70

我在跑步时遇到类似的问题

$ gem install rmagick

首先,您是否安装了imagemagick?如果不确定,请运行

$ convert --version

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

阅读 /superuser/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

我这样做之后对我有用。


非常感谢Darren,它才起作用。您正确的rvm没看到imagemagick路径
blawzoo 2012年

1
我将PKG_CONFIG_PATH更新为/Dir/to/where/found/MagickCore.pc,仍然以“无法安装RMagick 2.13.1。找不到MagickWand.h”结尾。还有什么我可以尝试..不知道如何使用链接的文章中提到的-l选项?
codeObserver 2012年

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

10
值得注意的是,PKG_CONFIG_PATH与pkg-config实用程序相关,该实用程序在Mac上默认未安装。我/usr/local/bin/Magick-config: line 41: pkg-config: command not found这样做的时候得到警告gem install rmagick。我曾经brew install pkg-config安装过pkg-config,然后PKG_CONFIG_PATH按照此处的说明进行设置,gem安装成功了。
jscott

272

如果您使用的是Ubuntu,则安装此软件包对我来说是固定的:

sudo apt-get install libmagickwand-dev

5
这就是答案。请接受它而不是上面的一个。
northtree

2
Urgh,将使用额外的75.2MB额外空间。我真的需要全部75个新包装吗?
乔纳森·霍斯曼

4
@JonathonHorsman如果我错了,请纠正我,但这是您第一次安装任何东西ImageMagick吗?为了使rmagick gem起作用,您需要ImageMagick开发人员库及其所有相关的依赖项。所以很不幸,是的,您确实需要所有这些软件包。从好的方面来说,您的计算机将具有世界一流的图像处理能力!
SporkInventor 2013年

9
@northtree-注意原始海报是在询问OS X,而不是Ubuntu
Darren Cheng

2
您还需要以下imagemagick软件包:github.com/rmagick/rmagick/wiki/Installing-on-Ubuntu
Robin Clowers

139

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

在build上rmagick,因为它包含file as,所以wand/MagickWand.h没有变通办法。现在看起来像是坚持使用ImageMagick 6。

在Mac OS X(我在Sierra上测试)上,我使用HomeBrew的versions水龙头,如下所示:

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)上。
何塞·托雷斯

1
在10.12.1上工作:)谢谢
Dorian

2
对于那些关心PKG_CONFIG_PATH来自何处的人,如果您愿意brew info imagemagick@6,它将告诉您酿造配方仅是桶装的,并且没有符号链接到/usr/local。它还会告诉您PKG_CONFIG_PATH: /usr/local/opt/imagemagick@6/lib/pkgconfig是否需要设置。
Waynesford'3

1
你是高手 我不知道为什么这样做,但我很高兴这样做。
jayp

1
耶稣带轮子!!谢谢!
雷蒙德·鲁伊斯·韦夫

78

我不想弄乱环境变量,因为我希望捆绑程序能够在CI机器上自行编译此gem。相反,我使用Homebrew安装pkg-config:

brew install pkgconfig

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

(这是pkg-config 0.28,ImageMagick 6.8.0-10和RMagick 2.13.2,全部位于Mountain Lion上。)


你救了我的日子。谢谢!
Chandresh Pant

小牛在这里也一样。谢谢!
Ben Kreeger 2013年

这条线brew install pkgconfig工作得很好。它帮助我成功安装了rmagick。
Francisco Quintero

17
在我的情况(在此之后,似乎小牛升级已经抛弃了所有的链接公式): ,brew uninstall pkgconfig imagemagick,。brew install imagemagick pkgconfig bundle
jwadsa​​ck 2014年

jwadsa​​ck解决方案解决了我的问题-特立独行的升级后,我不得不卸载/重新安装imagemagick / pkgconfig-即使我已经安装了两个版本的最新版本。
thewoolleyman '04

46

修复此设置,您当前的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文件中添加了这两个导出语句(请记住在尝试安装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 2013年

除了稍作修改外,此步骤对我来说效果很好。在上述步骤中,示例已正确给出,但该步骤将文件本身包含在包含路径中。我们只需要给出示例中指定的路径。
maniempire

安装imagick 6版对我有用。我做了以下工作:1)brew install rmagick 2)brew tap自酿/版本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

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

2
以防万一起初不起作用!确保brew uninstall安装了这两个冲泡包装,然后再次安装。
0bserver07 '04

1
在OS X Yosemite上为我工作。尝试了一堆东西,这是唯一有效的方法。
彼得·伯格

29

使用brew的Mac用户

如果您可以使用ImageMagick的v6而不是7,则可以尝试此操作

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

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


1
谢谢。我尝试了上述所有其他建议,但只有在10.12.2上才有效
-dwkns

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命令行工具,就像其他人提到的那样。

感谢大家在此发表的帖子!我很高兴为您提供答案,因为它有助于我的发展!


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

11

对于Ubuntu:

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

尽管这可能对面临相同问题的Linux用户有所帮助,但OP已明确指定使用Mac OS,因此此答案可能会引起误解。至少请提及答案是针对linux的(哪些发行版?)。
lorefnon 2014年

8

更新到Maverics后,我遇到了问题。它失去了很多联系。就我而言,我必须刷新指向pkg-config的链接

brew unlink pkg-config
brew link pkg-config

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


1
也为我工作!谢谢!
2014年

7

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

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

brew install pkgconfig

一旦成功完成(我必须先删除一些旧的符号链接),便可以成功安装RMagick gem


大规模的击掌和拥抱。那是我的问题。
布兰登·麦凯

我想你的意思是brew install pkgconfig
Nate Symer 2014年

谢谢纳撒尼尔-你是对的。我更新了帖子。
蒂姆·布尔

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

对我来说,一个问题是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的第七版兼容。有人在单独的gem-'imagemagick @ 6'中托管了适当的版本(6)。

如果您需要rmagick才能工作,但当前拥有imagemagick版本7或更高版本,请按以下步骤进行操作:

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

6

帮助我使用Debian Wheezy 64bit

 apt-get install libmagickcore-dev libmagickwand-dev

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,不得不将工作转给同事。

然后,偶然地,我发现我试图在另一个项目上使用捆绑安装,但由于找不到“ make”,所以无法安装json gem。我检查了一下,发现您需要转到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

我之所以遇到这个问题,是因为我运行了OS X的Migration Assistant,并且在迁移后没有任何重新链接。您需要检查的输出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. 向.bashrc添加了pkgconfig路径

    导出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昨天,我已经在这里提到“宝石无法安装软件包”
Mizanur Ra​​hman Mojumder '18年

1
我不是在谈论(直接)安装gem;我的评论涉及将arch包降级为imagemagick6。即,不需要所有的PKG_CONFIG ....东西pacman -S imagemagick6(假设您对降级没问题)。
贾斯汀

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

首先加载“酿造”之类的本地内容。

现在我在终端上打“酿酒医生”,看看是否有东西搞砸了

如果得到以下输出,则系统准备就绪。一切都很好。如果没有,ti会告诉你该怎么做。像踢出未发酵的东西,损坏的库,干净的符号链接之类的东西。

准备冲泡时,需要通过brew进行ghostscript(对于pdfs),libpng,imagemagick。

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

PS:另一个有用的命令是:“哪个转换”,以向您显示系统使用的imagemagick版本。

以及--version

因此,如果您通过brew安装git并执行'git --version'并且它返回了一些苹果git版本,则您的加载路径已损坏...


0

在Mac OS X 10.9上,如果有警告,请尝试更新Xcode。
$ Brew医生,
我发现了一些警告,请执行以下操作:
$ sudo / Developer / Library / uninstall-developer-folder

然后尝试:
$ bundle install
重新

这对我来说很好。




0

所有Brew选项都无法在优胜美地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

(我使用了和平主义者进行安装)

确认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

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

在ImageMagick6.xx版本我们magickwand命名文件夹,其中ImageMagick7.xx版本命名这个MagickCoreMagickWand。因此,这种更新在像此处这样的一些gem安装中引起了问题。正在使用 magick/some_header.hwand/some_header.h(意味着它们不会使用新的7.xx 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.xx版本,并使用以下命令进行安装(解压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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.