【问题标题】:Ruby gem rmagick won't install on Mac OS XRuby gem rmagick 不会安装在 Mac OS X 上
【发布时间】:2013-03-14 12:11:06
【问题描述】:

我知道这个问题很早以前就有人问过了,但没有一个解决方案对我有用,我现在真的很绝望。

我正在尝试使用 gem 安装 rMagick 以安装散居地。我已经通过自制软件安装了 imagick,并且在尝试运行 gem install rmagick 时收到此错误:

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

        /Users/tobischweiger/.rvm/rubies/ruby-1.9.3-p385/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 /Users/tobischweiger/.rvm/gems/ruby-1.9.3-p385@diaspora/bin:/Users/tobischweiger/.rvm/gems/ruby-1.9.3-p385@global/bin:/Users/tobischweiger/.rvm/rubies/ruby-1.9.3-p385/bin:/Users/tobischweiger/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin

*** 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=/Users/tobischweiger/.rvm/rubies/ruby-1.9.3-p385/bin/ruby


Gem files will remain installed in /Users/tobischweiger/.rvm/gems/ruby-1.9.3-p385@diaspora/gems/rmagick-2.13.2 for inspection.
Results logged to /Users/tobischweiger/.rvm/gems/ruby-1.9.3-p385@diaspora/gems/rmagick-2.13.2/ext/RMagick/gem_make.out

我对 gem 和 homebrew 不是很有经验,我想知道是否有人可以帮助我。

【问题讨论】:

  • 请包含您的 OS X 版本,因为这可能会影响答案。我的回答假设是 Mountain Lion (10.8)。
  • 对不起,是的,我正在运行 10.8.2。

标签: ruby macos rubygems operating-system rmagick


【解决方案1】:

这是使用自制软件破坏性较小的版本,rmagic 也不适用于imagemacigk version 7

ImageMagick 版本 6.4.9 或更高版本 (6.×.x)。版本 7 还没有 支持的;预计 2019 年 4 月 (https://github.com/rmagick/rmagick/pull/299)

(来自自述文件)

。你可以从 www.imagemagick.org 获得 ImageMagick,所以用 brew 试试这个

brew install imagemagick@6
PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig gem install rmagick

【讨论】:

    【解决方案2】:

    在安装 RMagick 时,我们需要检查不同的场景。请检查并确认:

    1. 检查您是否没有使用旧版本的 ruby​​ 安装最新版本的 RMagick。即红宝石1.8.7左右。您不能使用旧版本的 Ruby 安装最新版本的 RMagick。如果是这样,您可能会收到此错误消息。

      Building native extensions.  This could take a while...
      ERROR:  Error installing rmagick:
      ERROR: Failed to build gem native extension.
      
        /Users/user/.rbenv/versions/1.8.7-p375/bin/ruby extconf.rb
      
    2. 确保在安装 RMagick 之前已安装 imagemagick。

      brew install imagemagick
      
    3. 还要确保安装 RMagick 与兼容版本的 imagemagick。 RMagick 与最新版本的 imagemagick 不兼容。

    更多: 如果您只需要调整大小、锐化、转换现有图像,则可以使用 MiniMagick 而不是使用 RMagick。当我们需要创建图像、图表、绘图和排版时,需要 RMagick。与 RMagick 相比,它更易于使用,并且占用的系统资源也更少。 RMagick 消耗大量内存。

    【讨论】:

      【解决方案3】:

      对我来说,我必须查看输出,在你的情况下是

      /Users/tobischweiger/.rvm/gems/ruby-1.9.3-p385@diaspora/gems/rmagick-2.13.2/ext/RMagick
      

      其中有一个名为mkmf.log 的文件,它准确地列出了它试图编译的内容和错误。对我来说,链接器使用以下命令失败:

      ld: library not found for -lMagickCore
      

      查看它正在运行的命令看起来不错,除了最后,请参阅这个 sn-p:

      -lMagickCore-6.Q16 -lMagickCore-6.Q16 -lruby-static -framework CoreFoundation -lMagickCore -lpthread -ldl -lobjc -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/lib/darwin/libclang_rt.osx.a
      

      请注意,它从Magick-config 获取输出并通过添加-lMagickCore-6.Q16 使用这些输出,但仍然试图链接-lMagickCore。我认为这是have_library extconf 正在使用的副产品。对我来说重要的是 Homebrew 没有提供 libMagickCore.dylib 库。它可能是 ruby​​gems 的旧版本,我认为正确的解决方法是更新 have_library 函数,但我通过创建一个名为 libMagickCore.dylib 的符号链接来修复它,它指向 libMagickCore-6.Q16.dylib

      【讨论】:

        【解决方案4】:

        在小牛队,你可以做到:

        brew install pkgconfig
        brew uninstall imagemagick
        brew install imagemagick
        brew link imagemagick
        bundle install
        

        够了。我想。

        【讨论】:

          【解决方案5】:

          确保在执行这些操作时:

          $ cd /usr/local/Cellar/imagemagick/6.8.0-10/lib
          $ ln -s libMagick++-Q16.7.dylib   libMagick++.dylib
          $ ln -s libMagickCore-Q16.7.dylib libMagickCore.dylib
          $ ln -s libMagickWand-Q16.7.dylib libMagickWand.dylib
          

          您更改文件名以反映您的版本:您可以通过查看此处的 lib 文件夹来查看文件名:cd /usr/local/Cellar/imagemagick/VERSION/lib

          例如:

          ln -s libMagickWand-6.Q16.1.dylib libMagickWand.dylib
          

          等等

          【讨论】:

            【解决方案6】:

            我正在使用 OS X Lion。

            我运行 brew doctor 并看到 imagemagick 已取消链接,所以它告诉我运行 brew link imagemagick

            然后我关闭并重新打开终端,谢天谢地一切正常。

            【讨论】:

            • 太棒了!解决我的问题!我对 rmagick/imagemagick 爱恨交织。安装起来很痛苦,但使用起来非常好。
            【解决方案7】:

            主要问题似乎是正确安装和链接 imagemagick。

            这个页面对我很有帮助:

            http://sethvargo.com/20110726/install-imagemagick-on-mountain-lion/

            我正在运行自制软件,让brew doctor 命令运行干净是安装它的关键。

            【讨论】:

              【解决方案8】:

              我遇到了类似的问题,这对我有用:

              $ cd /usr/local/Cellar/imagemagick/6.8.0-10/lib
              $ ln -s libMagick++-Q16.7.dylib   libMagick++.dylib
              $ ln -s libMagickCore-Q16.7.dylib libMagickCore.dylib
              $ ln -s libMagickWand-Q16.7.dylib libMagickWand.dylib
              

              希望这会有所帮助。

              信用:https://coderwall.com/p/wnomjg

              【讨论】:

              • 这对我有用,因为我从这篇文章中得到了不同的错误堆栈,只有检查 InitializeMagick() 失败。
              【解决方案9】:

              我发现在 OSX 1.8.2 上将我的 Xcode 更新到最新版本 (4.6.1) 解决了这个问题,并且我成功安装了 rmagick-2.13.2

              【讨论】:

              • 这对我来说破坏了它。
              【解决方案10】:

              在尝试安装 gem 之前运行它(使用自制软件)。

              brew install imagemagick
              

              【讨论】:

              • 感谢您的回答。就像我在原始帖子中所说的那样,我已经尝试过这样做。结果是一样的。如果有帮助,我再试一次,这是来自 brew install 的消息:==> 正在下载 downloads.sf.net/project/machomebrew/mirror/ImageMagick-6 已下载:/Library/Caches/Homebrew/imagemagick-6.7.7-6.tar.bz2 ==> Patching修补文件配置 Hunk #1 在 32371(偏移 447 行)处成功。 ==> ./configure --disable-osx-universal-binary --without-perl --prefix=/usr/loca ==> make install 错误:空安装
              • 我可以运行那些有任何问题的命令,尝试运行 gem insatll rmagick,但它仍然给我同样的错误。
              • 问题是,您确实需要将 imagemagick 作为依赖项安装,没有办法绕过它。自制软件是最简单的方法。您是否尝试过在运行brew update之后 安装它?如果你运行 brew list,你看到 imagemagick 列出了吗?
              猜你喜欢
              • 2011-05-16
              • 2010-09-14
              • 1970-01-01
              • 2013-09-24
              • 2012-01-09
              • 1970-01-01
              • 2011-11-16
              • 2013-01-17
              • 1970-01-01
              相关资源
              最近更新 更多