当我尝试安装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。
任何人都可以帮我解决这个问题。
答案 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目录。
导出了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
使用以下步骤为我工作
将pkgconfig路径添加到.bashrc
导出PKG_CONFIG_PATH =" / usr / lib / imagemagick6 / pkgconfig"
创建了两个符号链接,如下所示
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/
答案 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,这可能是由于多种原因造成的:
通过转到运行make install
并仅运行make uninstall
的文件夹来删除imagemagick,这应将软件包完全删除,然后再次尝试convert -version
检查软件包的版本,如果要安装rmagick 假设您有一个新版本的imagemagick(IE:7),而您的rmagick需要一个较旧的版本,只需执行 现在我们已经清理了系统,可以再次安装imagemagick 尝试再次安装rmagick 如果它抱怨MagickCore,则意味着您需要安装 现在再试一次,一切都会正常:)sudo apt remove --purge imagemagick
sudo apt-get install imagemagick-6.q16
gem install rmagick -v '2.16.0
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版本中,我们有magick
,wand
个命名文件夹,其中ImageMagick7.x.x版本已命名此MagickCore
,MagickWand
。所以这个更新导致了一些gem安装中的问题,就像这里一样。哪个使用
magick/some_header.h
或wand/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)
我花了很长时间才弄清楚,但我通过以下方式解决了这些问题:
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安装后立即工作,没有其他更改。