Ruby gem rmagick 不会安装在 Mac OS X 上

Posted

技术标签:

【中文标题】Ruby gem rmagick 不会安装在 Mac OS X 上【英文标题】:Ruby gem rmagick won't install on 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。 【参考方案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 时,我们需要检查不同的场景。请检查并确认:

    检查您是否没有使用旧版本的 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
    

    确保在安装 RMagick 之前已安装 imagemagick。

    brew install imagemagick
    

    还要确保安装 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 列出了吗?

以上是关于Ruby gem rmagick 不会安装在 Mac OS X 上的主要内容,如果未能解决你的问题,请参考以下文章

rmagick gem安装“找不到Magick-config”

Bundle 无法在 Mac OSX 10.7 上安装 RMagick gem

如何在 Windows 10 上安装 rmagick

在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展

Ruby:在 Ubuntu 上安装 rmagick

运行 Rails 3.2 应用程序时出现 Rmagick 错误