【问题标题】:Rails: Error installing rmagick - ERROR: Failed to build gem native extensionRails:安装 rmagick 时出错 - 错误:无法构建 gem 原生扩展
【发布时间】:2013-10-16 22:41:42
【问题描述】:

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

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

【问题讨论】:

  • 你需要按照this的回答安装rmagick的开发库。

标签: ruby-on-rails


【解决方案1】:

我在 Ubuntu 20.04 中设置 Rails 6 应用程序时遇到了同样的问题。

我是这样解决的

RMagick 是 Ruby 编程语言和 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

在 ma​​cOS 上,您可以运行:

brew install pkg-config imagemagick

如果您想使用 ImageMagick 6,也可以运行:

brew install pkg-config imagemagick@6

在Windows上:

  1. 安装最新的 Ruby+Devkit 包,您可以从 RubyInstaller for Windows 获得。
  2. 您可能需要将PATH 环境变量配置到编译器所在的位置。 (例如:set PATH=C:\Ruby27-x64\msys64\usr\bin;C:\Ruby27-x64\msys64\mingw64\bin;%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 path 和 Install development headers and librarries for C and C++。

第 2 步:

安装 RMagick ruby​​ gem:

gem install rmagick

第 3 步:

现在您可以将 RMagick ruby​​ gem 添加到您的Gemfile:

gem 'rmagick', '~> 4.1'

注意:截至撰写本文时,最新版本为4.1

第 4 步:

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

资源:rmagick/rmagick GitHub page

就是这样。

我希望这会有所帮助

【讨论】:

    【解决方案2】:

    我这里都错了:(

    这有帮助:

    sudo apt-get install libmagickwand-dev

    根据rmagick github page

    然后捆绑安装没有错误

    【讨论】:

      【解决方案3】:

      只需运行这些命令

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

      【讨论】:

        【解决方案4】:

        首先运行这个: sudo apt-get install imagemagick

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

        现在安装 rmagick:gem install rmagick

        【讨论】:

          【解决方案5】:

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

          sudo dnf install ImageMagick-devel ImageMagick
          gem install rmagick
          

          【讨论】:

            【解决方案6】:

            在 Mac 上你可以试试这个:

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

            【讨论】:

            • 这对我来说是正确的答案。我安装的rmagick 与imagemagick@7.x 不兼容,如果您简单地发出brew install imagemagick,默认情况下brew 将安装它
            • 我不知道为什么这个答案没有足够的支持。这太正确了。 +1
            • 这是修复catpix 安装的唯一方法!
            【解决方案7】:

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

            brew install imagemagick@6
            gem install rmagick
            

            在您卸载已有的内容后,上述内容应该可以工作。

            【讨论】:

              【解决方案8】:

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

              brew install imagemagick
              gem install rmagick
              

              【讨论】:

              • 为清晰起见进行了编辑。这对我很有用,下面的@Anand Soni 解释了你为什么会首先收到错误。
              • 为我工作。 OSX El Capitan 10.11.5.
              【解决方案9】:

              对于 Ubuntu Server,我是这样安装的:

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

              【讨论】:

              • 如果遇到错误 mkmf.rb can't find header files for ruby​​ at /usr/lib/ruby/include/ruby.h,可能还需要 sudo apt-get install ruby​​-all-dev
              【解决方案10】:

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

              它会起作用的。

              【讨论】:

                【解决方案11】:

                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

                【讨论】:

                  【解决方案12】:

                  这是我在 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'
                  

                  【讨论】:

                  • 完美!在所有解决方案之后,这在我的 Ubuntu 18.04 上对我有用
                  【解决方案13】:

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

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

                  然后尝试安装

                  gem install rmagick
                  

                  【讨论】:

                    【解决方案14】:

                    首先,确保您已经安装了Imagemagick:

                    $ sudo apt-get install imagemagick
                    

                    现在,它可以构建 gem 原生扩展了。

                    然后,安装Rmagick gem:

                    $ sudo gem install rmagick
                    

                    【讨论】:

                    • 在新安装的 Ubuntu 17.04 上仅安装 imagemagick 是不够的。我还需要安装libmagick++-dev @Sirajus Salayhin 的评论
                    【解决方案15】:

                    根据错误日志,似乎缺少“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
                    

                    【讨论】:

                      【解决方案16】:

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

                      sudo apt-get install imagemagick
                      

                      然后安装 libmagick 包:

                      sudo apt-get install libmagick++-dev
                      

                      【讨论】:

                        【解决方案17】:

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

                        【讨论】:

                          【解决方案18】:

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

                          $ sudo apt-get install libmagick++-dev
                          

                          【讨论】:

                          • 安装此库后仍然存在错误。
                          • 以下软件包有未满足的依赖关系:libmagick++-dev:依赖:libmagick++-6.q16-dev 但不会安装
                          【解决方案19】:

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

                          yum install ImageMagick
                          
                          gem install rmagick 
                          

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

                          yum install ImageMagick-devel
                          
                          gem install rmagick
                          

                          谢谢。

                          【讨论】:

                            【解决方案20】:

                            只需安装 ImageMagick-devel 包,一切都会好起来的 :)

                            【讨论】:

                              猜你喜欢
                              • 2012-04-19
                              • 2012-03-13
                              • 2012-06-14
                              • 2016-02-08
                              • 2023-03-19
                              • 1970-01-01
                              • 1970-01-01
                              • 2020-09-21
                              • 2020-03-05
                              相关资源
                              最近更新 更多