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

bla*_*zoo 153 ruby install rmagick

当我尝试安装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.
Run Code Online (Sandbox Code Playgroud)

我使用的是Mac OSX 10.6.8,ruby 1.9.2p290,rvm 1.10.2.

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

Spo*_*tor 271

如果您在Ubuntu上,安装此软件包是为我修复的:

sudo apt-get install libmagickwand-dev
Run Code Online (Sandbox Code Playgroud)

  • @northtree - 注意原来的海报是在询问OS X,而不是Ubuntu (8认同)
  • 这就是答案.请接受它而不是上面的那个. (5认同)
  • @JonathonHorsman如果我错了,请纠正我,但这是你第一次安装ImageMagick吗?为了使rmagick gem能够运行,您需要ImageMagick开发人员库及其所有相关的依赖项.所以很遗憾,是的,你确实需要所有这些包.从好的方面来说,您的计算机将具有世界一流的图像处理功能! (4认同)
  • 在Debian Wheezy上也是如此 (2认同)
  • Urgh,将额外增加75.2MB的额外空间.我真的需要所有75个新套餐吗? (2认同)
  • 你还需要`imagemagick`包:github.com/rmagick/rmagick/wiki/Installing-on-Ubuntu (2认同)

shi*_*eya 136

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

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

在Mac OS X上(我在Sierra上测试过),我使用了HomeBrew的versionstap:

brew tap homebrew/versions
brew install imagemagick@6
Run Code Online (Sandbox Code Playgroud)

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

PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig gem install rmagick
Run Code Online (Sandbox Code Playgroud)

使用ImageMagick 6安装.

  • 最后一些工作,感谢一堆!顺便说一句,我也在塞拉利昂. (5认同)
  • 对于那些关注'PKG_CONFIG_PATH`来自哪里的人,如果你'brew info imagemagick @ 6`,它会告诉你brew规则只是keg而不是符号链接到`/ usr/local`.如果需要,它还会告诉您设置`PKG_CONFIG_PATH:/ usr/local/opt/imagemagick @ 6/lib/pkgconfig`. (2认同)

Fio*_*ins 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.)

  • 在我的情况下(在Mavericks升级后似乎已经放弃了所有链接的公式):`brew uninstall pkgconfig imagemagick`,`brew install imagemagick pkgconfig`,`bundle`. (17认同)

Dar*_*eng 69

跑步时遇到了类似的问题

$ gem install rmagick
Run Code Online (Sandbox Code Playgroud)

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

$ convert --version
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你可能要么用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"
Run Code Online (Sandbox Code Playgroud)

到我的〜/ .bash_profile,获取新的配置文件,然后再次运行gem install rmagick.

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

  • 值得注意的是PKG_CONFIG_PATH与pkg-config实用程序有关,而pkg-config实用程序默认安装在我的Mac上.当我执行`gem install rmagick`时,我得到了`/ usr/local/bin/Magick-config:第41行:pkg-config:命令未找到警告.我使用`brew install pkg-config`来安装pkg-config,然后按照此处的描述设置`PKG_CONFIG_PATH`,并且gem install工作正常. (10认同)
  • 在我的Mac上,此命令应更改为`$ export PKG_CONFIG_PATH ="/ usr/local/lib/pkgconfig:$ PKG_CONFIG_PATH"` (8认同)
  • 可能想提到第二步,因为你的第一步不适合我(虽然我使用的是tmux):`ln -s/usr/local/include/ImageMagick/wand/usr/local/include/wand && ln -s/usr/local/include/ImageMagick/magick/usr/local/include/magick` (6认同)

小智 46

修复此设置当前imagemagick安装的包含路径:

用brew安装ImageMagick

brew install imagemagick
Run Code Online (Sandbox Code Playgroud)

找到图书馆

$ mdfind MagickWand.h
/usr/local/Cellar/imagemagick/6.7.5-7/include/ImageMagick/wand/MagickWand.h
Run Code Online (Sandbox Code Playgroud)

安装rmagick gem

$ C_INCLUDE_PATH=/path/MagickWand.h gem install rmagick
Run Code Online (Sandbox Code Playgroud)

例:

$ C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.5-7/include/ImageMagick/ gem install rmagick
Run Code Online (Sandbox Code Playgroud)

  • 在我的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" (3认同)

tob*_*jim 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
Run Code Online (Sandbox Code Playgroud)

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

  • 这是唯一对我有用的东西.祝福你,先生. (5认同)
  • 这节省了我的一天,谢谢分享. (4认同)
  • 如果这首先不起作用!确保'brew uninstall`这两个brew包再次安装. (2认同)

Ada*_*ant 28

Mac用户使用brew

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

brew install imagemagick@6 --force && brew link imagemagick@6 --force
Run Code Online (Sandbox Code Playgroud)

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


fre*_*gas 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
Run Code Online (Sandbox Code Playgroud)

显然,您的路径会有所不同,具体取决于您是否使用像我这样的brew以及您正在安装的imagemagick版本.此外,正如其他人所提到的那样,必须安装xcode命令行工具.

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


rus*_*ils 11

对于Ubuntu:

sudo apt-get install imagemagick libmagickwand-dev
gem install rmagick
Run Code Online (Sandbox Code Playgroud)


小智 8

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

brew unlink pkg-config
brew link pkg-config
Run Code Online (Sandbox Code Playgroud)

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


Tim*_*ull 7

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

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

brew install pkgconfig
Run Code Online (Sandbox Code Playgroud)

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


Awa*_*ais 7

对于Ubuntu用户:它永远不会直接在Ubuntu上完成.您应该首先安装包来运行此命令...:

sudo apt-get install libmagickwand-dev  
Run Code Online (Sandbox Code Playgroud)

...然后安装:

gem install rmagick
Run Code Online (Sandbox Code Playgroud)

您可能会遇到同样的问题,请尝试清除apt存储库并首先删除任何损坏的包:

sudo apt-get update
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

如果系统识别出任何损坏的包,请强行将其删除(替换package_name为您自己的包):

sudo dpkg --remove -force --force-remove-reinstreq package_name
Run Code Online (Sandbox Code Playgroud)

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


Bri*_*ian 7

这适用于Mac OsX

安装Imagemagick:

brew remove imagemagick
brew install imagemagick
Run Code Online (Sandbox Code Playgroud)

确保pkg-config正确链接:

brew uninstall pkg-config
brew install pkg-config
brew unlink pkg-config && brew link pkg-config
Run Code Online (Sandbox Code Playgroud)

安装gem

gem install rmagick
Run Code Online (Sandbox Code Playgroud)


mat*_*mat 6

帮我在Debian Wheezy 64bit上

 apt-get install libmagickcore-dev libmagickwand-dev
Run Code Online (Sandbox Code Playgroud)


far*_*llw 6

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

$ convert --version
Run Code Online (Sandbox Code Playgroud)

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

Can't install RMagick 2.16.0. Can't find MagickWand.h.
*** extconf.rb failed *** 
Run Code Online (Sandbox Code Playgroud)

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

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

$ gem install imagemagick@6
$ brew unlink imagemagick
$ brew link imagemagick@6 --force
Run Code Online (Sandbox Code Playgroud)