Rails和OS X:如何安装rmagick?

38
我已经彻底绝望了 - 我花了一整天的时间在尝试将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
请问您能否给我一些提示或建议,问题可能出在哪里呢? 非常感谢!

你是否“检查了mkmf.log文件以获取更多详细信息”? - sosborn
说实话,我不知道在哪里找到这个文件(我已经尝试通过聚光灯搜索它,但是得到了很多结果)。 - user984621
1
你是否已经安装了ImageMagick的开发头文件? - Linuxios
Linuxios - 抱歉,但我该如何找到它? - user984621
尝试这个:https://dev59.com/WWox5IYBdhLWcg3wq2EC#30859701 - johndpope
11个回答

74

rmagick在使用来自homebrew的imagemagick(>= 6.8.0-10)时存在问题。

您可以选择

通过以下方式更新rmagick gem

    bundle update rmagick

或者手动将一些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

1
这是使用Homebrew安装ImageMagick 6.8.10和安装RMagick 2.13.1的正确答案。我的环境使用带有Ruby 1.9.3-p327的RVM。引用:https://coderwall.com/p/wnomjg - scarver2
1
对于8位量子深度:cd "\Magick-conifig --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` - fny
@Sooie所说的。更新Gemfile.lock可以解决这个问题。 - maksimov
bundle update rmagick 对我有用,rmagick 现在更新到了 2.13.2 版本。我正在使用 Ruby 1.9.3-p448。 - Sævar
1
这些都没有帮助我在Mac OS Mavericks上解决问题。真正有用的是重新安装新的XCode命令行工具:xcode-select --install - Hendrik Söbbing
显示剩余4条评论

41

苹果操作系统Sierra和Rails 5

brew unlink imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

1
最优雅的解决方案 - Alex Freshmann
1
我们能把这个作为解决方案吗?2012年就像是从石缘时代走出来的解决方案。 - Jeremy

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 */\

这是我如何解决它的:

  1. 卸载当前版本的ImageMagick:

    brew uninstall imagemagick

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

    brew install imagemagick --disable-openmp

  3. 安装rmagick:

    gem install rmagick

就这样了!


对于OSX 10.9 Mavericks,按照这个答案的步骤,然后跟随这个链接https://dev59.com/cWQn5IYBdhLWcg3wIkQF#17285359, 运行 gem install rmagick 就可以了。 - Hengjie
在我的OSX Lion上有效。 - Andy Copley

8
如果你正在使用Homebrew,只需要设置PKG_CONFIG_PATH即可。
brew install imagemagick
PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick//6.8.9-1/lib/pkgconfig/ gem install rmagick

这似乎是一个不错的整洁解决方案...虽然奇怪,因为我的系统上实际的 PKG_CONFIG_PATH 不存在。 - Jonathan Crooke

6
这个方法在Catalina上对我有效:
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

5

截至2017年,以上提到的所有解决方案似乎都不再起作用,因为Homebrew已经升级到ImageMagick 7.0。

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

我刚刚将ImageMagick版本降级到6.9.7-3,gem install rmagick就可以正常工作了。


5
尝试安装版本为6.7.7-6的imagemagick,因为版本6.8.x会破坏rmagick gem。
cd /usr/local
git checkout 7d951fb /usr/local/Library/Formula/imagemagick.rb
brew install imagemagick

在我的OS X Mavericks上运行良好。 - Erez Rabih

3

每当我安装rmagick出现问题时,我都会使用这个一行命令...

sudo C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.8.7-7/include/ImageMagick-6/ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.8.7-7/lib/pkgconfig/ gem install rmagick

确保ImageMagick的版本正确,然后你就可以开始了。如果你没有安装ImageMagick,请运行brew install imagemagick进行安装。


我必须发布这个帖子,因为我一直在安装这个宝石时遇到问题,每次都会忘记如何操作。

现在是2018年,我能够使用以下步骤安装宝石(gem),我不得不调整路径到最新版本,但是一切都很顺利。 - Danilo Cabello

1

在你安装了imagemagick之后,可以试试

> gem pristine rmagick

从这个帖子中得到的。Rails Rmagick gem。希望能有所帮助。


1
当我尝试运行这个命令时,会出现以下错误:ERROR: While executing gem ... (Gem::Exception) Failed to find gems ["rmagick"] >= 0 - user984621

0

或者您可以回退到旧版本的ImageMagick。 此线程 上有如何操作的说明:

现在,为了尝试真正有用,我建议您从老版本的瓶子中提取一个到您的酒窖中,然后如果您卸载了旧版本,请执行brew link imagemagick命令。这些版本可以在以下链接中找到:http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.snowleopard.bottle.3.tar.gz/download http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.lion.bottle.3.tar.gz/download http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.mountainlion.bottle.3.tar.gz/download

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接