Rails和OS X:如何安装rmagick?

use*_*621 34 ruby homebrew ruby-on-rails rmagick osx-lion

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

我想完全卸载imagemagick通过brew并重新安装(这是运作良好),然后安装rmagick,但每次当我尝试安装这种宝石的时候,我收到此错误:

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
Run Code Online (Sandbox Code Playgroud)

如果我将通过Gemfile或通过终端安装gem无关紧要,在这两种情况下我都会得到相同的错误输出.

这是以下版本imagemagick:imagemagick-6.8.0-10.

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

tai*_*nsu 73

rmagick在使用自制的imagemagick(> = 6.8.0-10)时遇到问题.

你也可以

更新rmagick宝石

    bundle update rmagick
Run Code Online (Sandbox Code Playgroud)

或手动符号链接一些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
Run Code Online (Sandbox Code Playgroud)

之后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
Run Code Online (Sandbox Code Playgroud)

  • 是的,只需使用2.13.2 (3认同)

Ash*_*man 29

Mac OSX Sierra和Rails 5

brew unlink imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
Run Code Online (Sandbox Code Playgroud)


小智 18

我有同样的问题.

如果您检查mkmf.log,您将看到以下错误消息:

ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main() {return 0;}
/* end */\
Run Code Online (Sandbox Code Playgroud)

这是我解决它的方式:

  1. 卸载当前版本的ImageMagick:

    brew uninstall imagemagick

  2. 重新安装imagemagick而不支持openmp(这是负责lgomp的库):

    brew install imagemagick --disable-openmp

  3. 安装rmagick:

    gem install rmagick

而已!


Dan*_*per 7

如果您使用自制软件,则只需设置PKG_CONFIG_PATH即可

brew install imagemagick
PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick//6.8.9-1/lib/pkgconfig/ gem install rmagick
Run Code Online (Sandbox Code Playgroud)


小智 6

这对我在卡塔利娜有用:

brew uninstall imagemagick
brew install imagemagick@6
export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"
brew link --force imagemagick@6
brew install pkg-config
gem install rmagick
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试安装6.77.7版本的imagemagick,因为版本6.8.x打破了rmagick gem.

cd /usr/local
git checkout 7d951fb /usr/local/Library/Formula/imagemagick.rb
brew install imagemagick
Run Code Online (Sandbox Code Playgroud)


Quv*_*Quv 5

截至 2017 年,上面建议的所有解决方案似乎都不再适用,因为 Homebrew 切换到 ImageMagick 7.0。

此处提供了一些解决方法。 https://github.com/rmagick/rmagick/issues/256

我刚刚降级到 ImageMagick 6.9.7-3 并且gem install rmagick工作正常。