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



我正在尝试在本地计算机上运行一个项目。我在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

我已经搜索过,但在任何地方都没有找到答案。

对于 Ubuntu,我根据以下链接使用了 ff:

$ sudo apt-get install libmagick++-dev

在 mac 上(以下代码适用于 OSX Mavericks(:

brew install imagemagick
gem install rmagick

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

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

我已经通过安装图像魔术解决了这个问题:

sudo apt-get install imagemagick

然后安装 libmagick 软件包:

sudo apt-get install libmagick++-dev

对于 Linux Fedora,我遇到了同样的错误,并使用以下两个命令进行了修复:

yum install ImageMagick
gem install rmagick 

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

yum install ImageMagick-devel
gem install rmagick

首先,确保您已安装Imagemagick

$ sudo apt-get install imagemagick

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

然后,安装 Rmagick gem :

$ sudo gem install rmagick
这是我

在 16.04 上所做的,

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

然后像那样安装 gem

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

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

在ImageMagick6.x.x版本中,我们有magickwand命名文件夹,在ImageMagick7.x.x版本中已将此MagickCore命名为MagickWand。因此,此更新导致某些 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

它会起作用。

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

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

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

首先运行以下命令: sudo apt-get install imagemagick

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

现在安装 RMicick: gem install rmagick

只需运行这些命令

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

Ubuntu 6 中设置 Rails20.04 应用程序时遇到了同样的问题。

这是我如何解决的

RMagickRuby 编程语言和 ImageMagick 图像处理库之间的接口。所以我们首先需要安装 ImageMagick 的开发库:

第 1 步

Ubuntu 上,你可以运行:

sudo apt-get install libmagickwand-dev

Centos 上,你可以运行:

sudo yum install gcc ImageMagick-devel make which

Arch Linux 上,你可以运行:

pacman -Syy pkg-config imagemagick

Alpine Linux 上,您可以运行:

apk add pkgconfig imagemagick imagemagick-dev imagemagick-libs

或者,如果您想使用 ImageMagick 6,则可以运行:

apk add pkgconfig imagemagick6 imagemagick6-dev imagemagick6-libs

macOS 上,您可以运行:

brew install pkg-config imagemagick

或者,如果您想使用 ImageMagick 6,则可以运行:

brew install pkg-config imagemagick@6

视窗上:

  1. 安装最新的 Ruby+Devkit 包,您可以从 RubyInstaller for Windows 获取。
  2. 您可能需要将环境变量配置为编译器所在的PATH。(例:set PATH=C:Ruby27-x64msys64usrbin;C:Ruby27-x64msys64mingw64bin;%PATH%(
  3. 从 Windows Binary Release 下载 ImageMagick-7.XXXX-Q16-x64-dll.exe(不是ImageMagick-7.XXXX-Q16-x64-static.exe(二进制文件,或者您可以从 Windows Binary Release 下载 ImageMagick 6。
  4. 安装 ImageMagick。您需要在 RMagick 的安装程序中打开复选框Add application directory to your system pathInstall development headers and librarries for C and C++

第 2 步

安装 RMagick 红宝石:

gem install rmagick

第 3 步

现在您可以将 RMagick 红宝石添加到您的Gemfile

gem 'rmagick', '~> 4.1'

注意:在撰写本文时,最新版本4.1

第 4 步

最后,您可以运行 bundle install 将 Gem 安装到您的应用程序中。

资源: rmagick

/rmagick GitHub page

就这样。

我希望这有帮助

只需安装 ImageMagick-devel 软件包,一切都应该没问题 :)

对于 Ubuntu Server,我通过以下方式安装了它:

sudo apt-get install imagemagick
sudo apt-get install libmagick++-dev
sudo gem install rmagick -v '2.15.4'

这里对我来说都是错误的:(

这有助于:

sudo apt-get install libmagickwand-dev

根据RMAGICK GitHub页面

然后捆绑安装没有错误

如果您使用的是 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
  ........

你需要为 ubuntu 运行这两个命令

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

然后尝试安装

gem install rmagick
<</div> div class="one_answers">

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

brew install imagemagick@6
gem install rmagick

卸载已有内容后,上述内容应该可以正常工作。

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

sudo dnf install ImageMagick-devel ImageMagick
gem install rmagick

最新更新