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

时间:2012-01-29 02:26:56

标签: 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.

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

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

32 个答案:

答案 0 :(得分:270)

如果您使用的是Ubuntu,安装此软件包就是为我解决的问题:

sudo apt-get install libmagickwand-dev

答案 1 :(得分:134)

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

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

在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进行安装。

答案 2 :(得分: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。)

答案 3 :(得分: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。

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

答案 4 :(得分: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

答案 5 :(得分: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

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

答案 6 :(得分:28)

使用brew的Mac用户

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

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

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

答案 7 :(得分: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命令行工具。

感谢大家的帖子!我正在为你的答案做好准备!

答案 8 :(得分:11)

对于Ubuntu:

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

答案 9 :(得分:8)

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

的链接
brew unlink pkg-config
brew link pkg-config

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

答案 10 :(得分:7)

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

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

brew install pkgconfig

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

答案 11 :(得分: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

答案 12 :(得分: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

然后重新安装任何丢失的包。 :)

答案 13 :(得分:6)

帮助我使用Debian Wheezy 64bit

 apt-get install libmagickcore-dev libmagickwand-dev

答案 14 :(得分:5)

对我来说一个问题是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

答案 15 :(得分:3)

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

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

答案 16 :(得分: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 - >偏好 - >下载并安装命令行工具以使其再次运行。 json gem安装得很好。

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

gem install rmagick

再一次。它运作得很好。

答案 17 :(得分: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

答案 18 :(得分:1)

在arch linux中,安装了imagemagick @ 6之后,gem无法安装软件包rmagick并在下面收到错误。

Can't install RMagick 2.16.0. Can't find MagickWand.h

使用以下步骤为我工作

  1. 将pkgconfig路径添加到.bashrc

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

答案 19 :(得分: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

答案 20 :(得分: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
热潮一切正常。

答案 21 :(得分:1)

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

答案 22 :(得分:0)

对于高山3.9图像生成,存在相同的错误。它带有ImageMagick 7.0.8.38-r0

要修复在ImageMagick 6.9.6.8-r1上使用Alpine 3.5:

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/

参考https://stackoverflow.com/a/55971997/4950680

答案 23 :(得分:0)

我刚刚在Ubuntu 20.04上遇到了这个问题,为我解决的问题是通过linuxbrew安装imagemagick:

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

然后只需遵循brew文档:

要先在路径中运行imagemagick @ 6:

 echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/imagemagick@6/bin:$PATH"' >> /home/visiond/.bash_profile

让编译器查找imagemagick @ 6运行:

  export LDFLAGS="-L/home/linuxbrew/.linuxbrew/opt/imagemagick@6/lib"
  export CPPFLAGS="-I/home/linuxbrew/.linuxbrew/opt/imagemagick@6/include"

对于pkg-config查找imagemagick @ 6,请运行:

  export PKG_CONFIG_PATH="/home/linuxbrew/.linuxbrew/opt/imagemagick@6/lib/pkgconfig"

然后尝试再次安装rmagick

gem install rmagick -v '2.16.0'

如果抱怨缺少pkg-config运行

brew reinstall pkg-config

现在尝试再次安装rmagick,一切正常。

如果您使用的是WSL,它仍然可能失败,进行更改

gem 'rmagick', '~> 2.16.0'

gem 'rmagick', '~> 2.15', '>= 2.15.4', :platforms => :ruby

应完全解决该问题。

更新

有时候brew选项会给您一个奇怪的错误,提示类似

Rmagick was configured with <some-imagemagick-version> but <other-imagemagick-version> is in use

这通常是与linuxbrew有关的问题,我所做的修复工作是

回滚那里解释的所有内容^^

  brew uninstall imagemagick@6
  brew uninstall pkg-config

然后从您的bashrc删除所有这些行

 export PATH="/home/linuxbrew/.linuxbrew/opt/imagemagick@6/bin:$PATH"
 export LDFLAGS="-L/home/linuxbrew/.linuxbrew/opt/imagemagick@6/lib"
 export CPPFLAGS="-I/home/linuxbrew/.linuxbrew/opt/imagemagick@6/include"
 export PKG_CONFIG_PATH="/home/linuxbrew/.linuxbrew/opt/imagemagick@6/lib/pkgconfig"

使用最新更改刷新终端

source ~/.bashrc

通过运行以下命令确保您没有安装任何imagemagick:

convert -version

如果您得到类似的东西

Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib

这意味着您的系统中仍然有imagemagick,这可能是由于多种原因造成的:

  • 您从源代码安装了imagemagick
  • 您通过apt安装了imagemagick

如果为1

通过转到运行make install并仅运行make uninstall的文件夹来删除imagemagick,这应将软件包完全删除,然后再次尝试convert -version

如果2

检查软件包的版本,如果要安装rmagick

假设您有一个新版本的imagemagick(IE:7),而您的rmagick需要一个较旧的版本,只需执行

sudo apt remove --purge imagemagick

现在我们已经清理了系统,可以再次安装imagemagick

sudo apt-get install imagemagick-6.q16

尝试再次安装rmagick

gem install rmagick -v '2.16.0

如果它抱怨MagickCore,则意味着您需要安装libmagickwand-dev,以这样做:

sudo apt-get install libmagickwand-dev

现在再试一次,一切都会正常:)

答案 24 :(得分:0)

此问题有一些变体。通常情况是处理运行旧版本ruby的旧应用程序。

rmagick依赖于imagemagick ...但不仅限于此。如果您走得太远,那么回溯可能是明智的:

brew install imagemagick@6

然后选择合适的版本

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

然后您需要调整路径,并在自制时强制使用

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

然后您可以将rmagick安装到最新版本或版本

PrintWriter

答案 25 :(得分: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

它会起作用。

答案 26 :(得分: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使用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) - &gt; rmagick(&gt; = 2.15.2)

答案 27 :(得分:0)

我能够通过升级到2.13.2

来解决这个问题

答案 28 :(得分:0)

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

yum install ImageMagick ImageMagick-devel

gem install rmagick -v '2.13.2'

答案 29 :(得分:0)

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

然后尝试:
    $ bundle install
再次

这对我来说很好。

答案 30 :(得分: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'进入终端,看看是否有什么东西搞砸了

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

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

然后你可以愉快地输入:'gem install rmagick',以防你没有杀死你的ruby设置。但这很容易通过清理过的啤酒重新安装。

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

以及--version

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

答案 31 :(得分:0)

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

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