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
库。它可能是 rubygems 的旧版本,我认为正确的解决方法是更新 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