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

当我尝试安装 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.2 p290,rvm 1.10.2上。

有人能帮我解决这个问题吗。

91451 次浏览

我在跑步方面也遇到过类似的问题

$ gem install rmagick

首先,您安装了 image magick 吗? 如果您不确定,请运行

$ convert --version

如果您这样做,您可能要么安装了 fink 或 macports (也许是自制的?).发生的情况是,rvm 找不到 imagemagick 目录。

读完之后 Https://superuser.com/questions/361435/i-have-compiled-imagemagick-on-my-centos-and-rmagick-wont-install 我通过添加

$ export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig:$PKG_CONFIG_PATH"

到我的 ~/. bash _ profile,寻找新的 profile,然后运行:

gem install rmagick

我这么做之后,这招对我很管用。

修正这个设置当前图像弹出安装的包含路径:

使用 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
C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.7.7-6/include/ImageMagick gem install rmagick

如果你在使用 Ubuntu,安装这个软件包对我来说就是修复它的方法:

sudo apt-get install libmagickwand-dev

在 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

再来一次,效果很好。

对于我自己和其他人的启发,我通过使用 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

显然,你的路径将根据你是否像我一样使用酿造和什么版本的图像魔术你正在安装。另外,正如其他人所提到的,xcode 命令行工具也必须安装。

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

我不想干扰环境变量,因为我希望 bundler 能够在 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 上。)

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

我最终用上面霍普金斯的答案解决了这个问题..。

brew install pkgconfig

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

当我在 OSX 10.8上安装了默认的 ImageMagick (没有自制程序或 macport)时,我很难让这个问题得到解决。这个线程中的建议组合或从这个线程链接到的线程组合对我都不起作用(当然是为我的本地安装修改路径)。

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

对于 Ubuntu:

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

我把它标记为最喜欢的版本,因为每当我需要安装 RMagick 的新系统出现时,它似乎都会反咬我一口(而且时间已经过去,版本号已经滚动)。

Mac OS X 10.8.4

Rvm1.22.3

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

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

在 Debian Wheezy 64位上帮了我

 apt-get install libmagickcore-dev libmagickwand-dev

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

一切正常。

在 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

本地的东西,比如“啤酒”是先装载的。

现在我把“酿酒医生”按进终端,看看有没有什么问题

如果您得到以下输出 你的系统已经准备好了。 一切都很好。如果没有,我会告诉你该怎么做。比如扔掉没煮好的东西,断掉的书,干净的符号链接什么的。

当你准备酿造,你需要 ghostscript (为 pdf) ,libpng,图像魔术通过酿造。

然后你可以高兴地输入: ‘ gem install rmagick’,以防你没有关闭你的 Ruby 安装程序。但这很容易重新安装,通过您清理啤酒。

另一个有用的命令是: ‘ which Convert’,向您展示系统使用了什么版本的 Imagemagick。

还有... 版本

因此,如果你通过 brew 安装了 git,并执行了‘ git-version’,它返回了一些苹果的 git 版本,那么你的加载路径就中断了... ..。

在 Mac OS X 10.9上,如果有关于 Xcode 的警告,请尝试更新它。
$酿酒医生
我发现一些警告,做:
$sudo/Developer/Library/uninstall-Developer- 文件夹

然后尝试:
$bundle 安装
再来一次

这招对我很管用。

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

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

在 CentOS 6.5 x64上,这很简单:

yum install ImageMagick ImageMagick-devel


gem install rmagick -v '2.13.2'

我可以通过升级到2.13.2来解决这个问题

我有一个问题后,更新小牛队。 它失去了很多连接。 在我的例子中,我必须刷新到 pkg-config 的链接

brew unlink pkg-config
brew link pkg-config

然后安装 Rmagick 工作像一个魅力。

我遇到这个问题是因为我运行了 OSX 的迁移助手,在迁移之后没有任何重新连接。您需要检查 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

尝试重新安装 Imagemagick 和 PkgConfig,这应该可以修复 Mavericks

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

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

Yosemite 10.10上的所有酿造选项都未能安装 rmagick 2.13.1

成功了
拿到最新的 RVM

Curl-sSL https://get.rvm.io | bash-s Stability —— ruby Rvm install 2.1.1 Rvm 使用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)

一个基于 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上工作

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

在构建 rmagick时,由于它包含作为 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安装。

可能您正在安装 ImageMagick version 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

Mac 用户使用啤酒

如果您可以使用 ImageMagick 的 v6而不是7,您可以尝试这样做

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

注意,这将断开现有 IM 安装的链接,因此如果您的机器上有其他使用 ImageMagick 的项目而没有出现问题,请小心。

我的一个问题是 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 中托管了适当的版本(6)——“ imagemagick@6”。

如果你需要 rmagick 来工作,但是目前有一个 image magick 版本7或更高版本,下面是切换的步骤:

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

在 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

阿尔卑斯山3.9图像建立得到相同的错误。它来自 ImageMagick 7.0.8.38-r0

要解决这个问题,你可以使用阿尔卑斯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/

在 rmagick repo 中有一个关于 ImageMagick 7.0.x 失败构建的公开问题 。希望很快就能修好。

我刚刚在 Ubuntu 20.04上遇到了这个问题,解决这个问题的方法是通过 Linuxbrew安装 image magick:

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

那就按照酿造文档来做:

首先在 PATH 运行中使用 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

应该能彻底解决这个问题。

更新

有时候酿造选项会给你一个奇怪的错误,比如

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

运行以下命令确保没有安装任何图像映像:

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

这意味着你的系统中仍然有图像魔法,这可能是由于各种原因:

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

如果1

通过到运行 make install的文件夹中删除图像魔术,只运行 make uninstall,这应该会完全删除包,然后再试一次 convert -version

如果2

检查软件包的版本,如果您试图安装 rmagick < v3,那么您将需要 imagemagick 6,如果不是,那么任何 Imagimagick 都可以工作。

假设您有一个新版本的 image magick (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

现在再试一次,一切都会好起来的:)

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

Rmagick 依赖于 image magick... 但不是任何一个。如果你已经走得太远,回头看看可能是明智的:

brew uninstall imagemagick

然后进行一个适当的版本

brew install imagemagick@6

那么你的道路需要调整,并强迫自制

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