安装rmagick时出错:错误:无法构建gem本机扩展名

问题描述 投票:59回答:19

我正在尝试在本地计算机上运行一个项目。我在Mac OS系统上安装了Ruby和Rails。它工作正常。我可以创建一个新项目,并且可以正确运行它,而不会出现任何错误,但是当我尝试运行现有项目时,它说我们必须bundle install。当我运行该命令时,出现以下错误:

"An error occurred while installing rmagick (2.13.2), and Bundler cannot continue.
Make sure that `gem install rmagick -v '2.13.2'` succeeds before bundling."

当我运行gem install rmagick -v '2.13.2'时,出现以下错误:

ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc-4.2... yes
checking for Magick-config... no
Can't install RMagick 2.13.2. Can't find Magick-config in /usr/local/rvm/gems/ruby-1.9.3-p392/bin:/usr/local/rvm/gems/ruby-1.9.3-p392@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p392/bin:/usr/local/rvm/gems/ruby-1.9.3-p392/bin:/usr/local/rvm/gems/ruby-1.9.3-p392@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p392/bin:/usr/local/rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/sm/bin:/opt/sm/pkg/active/bin:/opt/sm/pkg/active/sbin

*** 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/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby


Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rmagick-2.13.2 for inspection.
Results logged to /usr/local/rvm/gems/ruby-1.9.3-p392/gems/rmagick-2.13.2/ext/RMagick/gem_make.out

我已搜索,但未在任何地方找到答案。

ruby-on-rails
19个回答
80
投票

对于Ubuntu,我使用了ff。基于此link

$ sudo apt-get install libmagick++-dev

2
投票

首先运行:sudo apt-get install imagemagick

然后:sudo apt-get install libmagick++-dev

现在安装rmagick:gem install rmagick


2
投票

只需运行这些命令

• $ sudo apt-get install imagemagick
• $ sudo apt-get install libmagick++-dev
• $ sudo gem install rmagick
• $ bundle install

1
投票

只需安装ImageMagick-devel软件包,一切就可以了:)


1
投票

Ubuntu解决方案:

sudo apt-get install imagemagick

ln -s /usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16/Magick-config /usr/bin/Magick-config


1
投票

对于Ubuntu Server,我通过执行以下操作安装了它:

sudo apt-get install imagemagick

sudo apt-get install libmagick++-dev

sudo gem install rmagick -v '2.15.4'

0
投票

如果使用的是openSUSE,请首先检查是否安装了ImageMagick。如果已安装,则请安装它的开发头文件。

[arup@sztukajedzenia]$ sudo zypper se imagemagic
root\'s password:

Loading repository data...
Reading installed packages...

S | Name              | Summary                                               | Type
--+-------------------+-------------------------------------------------------+-----------
i | ImageMagick       | Viewer and Converter for Images                       | package
  | ImageMagick       | Viewer and Converter for Images                       | srcpackage
  | ImageMagick-devel | Include Files and Libraries Mandatory for Development | package
  | ImageMagick-doc   | Document Files for ImageMagick Library                | package
  | ImageMagick-extra | Viewer and Converter for Images - extra codecs        | package
[arup@sztukajedzenia]$ sudo zypper in ImageMagick-devel
root\'s password:
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  ImageMagick-devel libbz2-devel
  ........

0
投票

您需要同时为ubuntu运行这两个命令

sudo apt-get install libmagick++-dev
sudo apt-get install imagemagick

然后尝试安装

gem install rmagick

0
投票

对于Mac用户,由于最新版本7不兼容,因此请安装imagemagick 6。

brew install imagemagick@6
gem install rmagick

上述内容在卸载现有资源后应该可以使用。


0
投票

对于Fedora 27,我解决了这个问题:

sudo dnf install ImageMagick-devel ImageMagick
gem install rmagick

0
投票

这里都对我来说不对:(

这有帮助:

sudo apt-get install libmagickwand-dev

根据rmagick github page

然后捆绑包安装没有错误


48
投票

在Mac上(以下代码在OSX Mavericks上有效:]

brew install imagemagick
gem install rmagick

35
投票

在Mac上,您可以尝试以下操作:

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

13
投票

我已经通过安装imagemagic解决了这个问题:

sudo apt-get install imagemagick

然后安装libmagick软件包:

sudo apt-get install libmagick++-dev

9
投票

对于linux fedora,我遇到了相同的错误,并通过以下两个命令进行了修复:

yum install ImageMagick

gem install rmagick 

对于Centos,请安装ImageMagick-devel软件包。使用以下命令:

yum install ImageMagick-devel

gem install rmagick

感谢。


7
投票

首先,请确保您已安装Imagemagick

$ sudo apt-get install imagemagick

现在,它可以构建gem本机扩展。

然后,安装Rmagick gem:

$ sudo gem install rmagick

4
投票

这是我在16.04上所做的,

sudo apt-get install libmagickwand-dev
sudo apt-get install graphicsmagick-imagemagick-compat

然后安装类似的宝石

PATH="/usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16:$PATH" gem install rmagick -v '2.13.2'

2
投票

根据错误日志,看起来好像缺少“ Magick-config”。您需要安装ImageMagik或GraphicsMagick。这些是您应该遵循的命令,该命令取自RMagik Documentation

1) Go to http://www.imagemagick.org or http://www.graphicsmagick.org and download the latest version of the software to a temporary directory. the extract them :

- tar xvzf ImageMagick.tar.gz
- cd ImageMagick-x.x.x

- ./configure --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8

- make
- sudo make install

- sudo gem install rmagick

2
投票

可能是您正在安装ImageMagick版本7.x.x,它将在您的usr/lib/local/include/ImageMagick7.x.x文件夹中生成不同的文件夹名称。E.g

在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"
         ^

解决

从官方站点在系统中安装ImageMagick6.x.x版本:https://www.imagemagick.org/download/,并使用此命令进行安装(解压zip / tar之后:

]
./configure
make 
make install

然后做

gem install rmagick

它将起作用。

© www.soinside.com 2019 - 2024. All rights reserved.