我已经在CentOS上编译了ImageMagick,并且RMagick无法安装


16

我通过安装ImageMagick,(使用ImageMagick 6.7.3-7)

./configure --prefix=/usr && make && make install

当我尝试

gem install imagemagick

我懂了

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

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.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby

尽管MagickWand.h已存在于系统中/usr/include/ImageMagick/wand/MagickWand.h。所以问题是,我实际上如何让编译器在其中查看?

Answers:


26

在CentOS上使用最新的所有功能(截至2011年12月)时出现了相同的问题,并使用以下方法解决了该问题:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

在我的.bashrc文件中以选择MagickCore.pc,然后创建了两个符号链接:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick

瞧,发现了MagickWand.h,并拾起了MagickCore.pc ...成功安装了gem。

我想象另一个解决方案是在安装ImageMagick的过程中修改配置选项集,但是我还没有足够的系统管理员才能知道这些文件的正确选项和位置。经过45分钟的搜寻后,我无法确定这些文件应该存放在哪里,这些文件会由gem install make系统自动获取。

干杯!

编辑:2014-10-01

只是对CentOS 7再次这样做,ln不需要上面的命令。但是,我遇到一个问题:“在pkg-config搜索路径中未找到Package MagickCore。” 跑步sudo gem install rmagick

问题是在/ etc / sudoers中重置了环境。运行sudo visudo完以编辑sudoers文件后,我将其添加Defaults env_keep += "PKG_CONFIG_PATH"到适当的部分,将安全路径更新为包括/ usr / local / bin,然后进行安装,就像是执行超级命令一样。


我在RedHat 6上遇到了同样的问题,您的解决方案对我有用。谢谢一群!
Callmeed 2012年

太棒了,甚至在山狮中也像魅力一样!我需要运行以上所有语句才能安装rmagick gem。
亨德拉·乌齐亚

尝试了一下,得到了“ / usr / local / bin / Magick-config:第41行:pkg-config:找不到命令/ usr / local / bin / Magick-config:第47行:pkg-config:找不到命令/ usr / local / bin / Magick-config:第50行:pkg-config:找不到命令/ usr / local / bin / Magick-config:第53行:pkg-config:找不到命令”
Jonny

13

ImageMagick通常会将MagickCore放在此处:

/usr/local/lib/pkgconfig/MagickCore.pc

如果您的不在,则可以这样找到它:

find / -name MagickCore.pc

现在,您知道您的pkgconfig路径:

/usr/local/lib/pkgconfig

在安装gem时设置环境:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

谢谢!在Bitnami Ubuntu 12.04映像上为我工作。.–
JD

谢谢!类似的方法在这里起作用:找到/ usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig /软件包
MegaTux

7

对于CentOS,我通过安装“ ImageMagick-devel”软件包解决了此问题:

yum install ImageMagick-devel


1
这是最好的答案:)
kovpack '16

2

关键是在configure输出中,其中显示“正在检查wand / MagickWand.h”-显然/ usr / include中不需要ImageMagick目录,这意味着您需要将该目录的内容上移或需要以其他方式安装ImageMagick本身。对于系统本身未提供的任何内容,直接将内容直接放在/ usr中通常是一个坏主意-如果将所有添加到/ usr / local中的内容隔离开来,而将/ usr留在很大程度上,则系统会变得更加容易也可以同时进行管理,因为您可以(很久以来就忘记了这一点)弄清楚添加的内容与系统附带的内容。


好的建议,尽管您仍然没有回答如何强制编译器在某些目录中查找头文件的问题。
肯李

3
好的,编译器调用都是通过gem命令进行的(您可以通过-I标志强制编译器查找其他位置,但该用户没有直接使用编译器),最好使用configure命令来设置内容,例如善良的产生无需改变其他任何事物。如果有可用的MagickCore.pc文件,则使用配置为继续运行的PKG_CONFIG_PATH env变量可以解决问题。“查找/ usr -name MagickCore.pc”,然后查看是否存在,然后使用“ setenv PKG_CONFIG_PATH / path / to / where / find / found / it”添加它所在的目录
jkh

我将PKG_CONFIG_PATH更新为/Dir/to/where/found/MagickCore.pc,仍然以“无法安装RMagick 2.13.1。找不到MagickWand.h”结尾。还有什么我可以尝试..不确定如何使用-l选项?
p101 2012年

嗯!那应该起作用。问题:如果键入./configure --help,它是否特别列出了ImageMagick的所有配置选项?如果是这样,您可以从配置脚本直接指向/ usr / local中的ImageMagick目录。
2012年

Thnx jkh ..有趣的是我没有在rmagick中找到configure,所以您可能是指imagemagick。我在这里stackoverflow.com/questions/9561386/rmagick-installation创建了一个新问题 。如果您可以看看的话,将不胜感激。谢谢!
2012年


1

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

会的。


我只好跑sudo ldconfig /usr/local/libsudo make install
sequielo

0
        1) install by installer

http://cactuslab.com/imagemagick/

2)尝试用gem安装rmagick

如果检查魔杖/MagickWand.h ...没有
类型

mdfind MagickWand.h

找到类似的东西

/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/wand/MagickWand.h

并输入终端

C_INCLUDE_PATH=/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/ gem install rmagick

如果在此之后出现此错误(因为出现了此错误)“在pkg-config搜索路径中未找到Package MagickCore”。

类型

mdfind MagickCore.pc

找到类似/opt/ImageMagick/lib/pkgconfig/MagickCore.pc的东西

最后是终端类型:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick

1
该命令mdfind是仅MacOSX的命令,在Linux变体中不存在。
slm

如@slm所说,请重新编写您的答案,以帮助质量检查。
洛伦佐·冯·马特洪峰

0

我在Mac OS X山狮下安装了Redmine ...

安装程序在rmagick上失败...

经过很多麻烦之后,它通过安装“ homebrew”来工作,但没有通过homebrew安装rmagick。相反,我通过自制软件安装了“ pkg-config”,因为rmagick对此有所抱怨。

命令:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
brew install pkg-config
sudo gem install rmagick

然后,redmine继续安装,没有任何问题。



0

在安装rmagic之前,您应该在系统上安装imagic,根据您的操作系统安装imagick会有所不同,然后必须安装一些内部支持ruby的库来合并系统上的图像处理库。要安装这些库,请在Linux上使用以下命令:sudo apt-get install libmagickwand-dev imagemagick对于Centos:yum install libmagickwand-dev imagemagick

那么您必须使用以下命令安装gem rmagick:gem install rmagick它对我有用,我成功安装了rmagick ...


0

最接近@ Irongaze.com的答案!在我的Arch Linux中,我创建了这两个符号链接:

$ sudo ln -s /usr/include/ImageMagick-6/wand /usr/include/wand
$ sudo ln -s /usr/include/ImageMagick-6/magick /usr/include/magick

然后bundle再次运行并rmagick已更正安装。

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.