ruby-on-rails - Rails 和 OS X : How to install rmagick?

标签 ruby-on-rails ruby osx-lion homebrew rmagick

我已经完全绝望了——我花了一整天的时间尝试将 rmagick gem 安装到 Mac OS X Lion,但实际上这是一场悲剧。 我在 Google 上看到了许多类似的主题,但没有任何帮助。

我尝试通过 brew 完全卸载 imagemagick 并再次安装它(这工作正常)然后安装 rmagick,但是每次当我尝试安装此 gem 时,收到此错误:

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

        /Users/adam/.rvm/rubies/ruby-1.9.3-p327/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
extconf.rb:128: Use RbConfig instead of obsolete and deprecated Config.
checking for clang... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... yes
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.13.1. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information.

*** 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
    --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/adam/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
    --with-MagickCorelib
    --without-MagickCorelib
    --with-Magicklib
    --without-Magicklib
    --with-Magick++lib
    --without-Magick++lib


Gem files will remain installed in /Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1 for inspection.
Results logged to /Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1/ext/RMagick/gem_make.out

不管我是通过 Gemfile 还是通过终端安装 gem,在这两种情况下我都会得到相同的错误输出。

这是 imagemagick 的版本:imagemagick-6.8.0-10

你能给我一些提示或提前,可能是哪里的问题? 非常感谢!

最佳答案

rmagick 在使用来自 Homebrew 软件的 imagemagick (>= 6.8.0-10) 时出现问题。

你可以

更新 rmagick gem

    bundle update rmagick

或手动符号链接(symbolic link)一些 dylib 使其工作:

    $ cd "`Magick-config --prefix`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

之后 gem install rmagick 应该可以工作了。

查看 homebrew/issues/16625 中关于此的讨论

更新: 感谢@faraz 提供的漂亮的单行命令:

cd "`Magick-config --prefix`/lib"; ln -s libMagick++-Q8.7.dylib libMagick++.dylib; ln -s libMagickCore-Q8.7.dylib libMagickCore.dylib; ln -s libMagickWand-Q8.7.dylib libMagickWand.dylib

关于ruby-on-rails - Rails 和 OS X : How to install rmagick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963404/

相关文章:

ruby-on-rails - 使用注册电子邮件登录自动化

javascript - 如何让 JavaScript 文件在 Rails 5 应用程序上运行

ruby-on-rails - rails ActiveSupport :Concern and Private Methods

ruby - 我可以以编程方式将 Webm 文件中的音频插入另一个 Webm 文件吗?

ruby-on-rails - 如何在 RSpec View Examples 中设置语言环境

xcode - 卸载Lion中的XCode

ruby-on-rails - 从 Rails 2.3 升级到 Rails 4.0

ruby-on-rails - ActiveJob 未出现在 Sidekiq 队列中

fullscreen - 如何使用 Lion 新 API 全屏显示您的应用程序

macos - IOBluetooth 事件委托(delegate)仅在不需要的 NSRunLoop 中执行