【问题标题】:RMagick freezes ruby processes when required on OS X Snow LeopardRMagick 在 OS X Snow Leopard 上需要时冻结 ruby​​ 进程
【发布时间】:2010-02-03 01:50:39
【问题描述】:

我遇到了一个很奇怪的问题。我已经通过自制软件安装了 ImageMagick。

我已经安装了 rmagick-2.12.2 和 rmagick-2.11.2 没有问题。

安装任何一个都没有错误。

ImageMagick 似乎已安装并在我的路径中:

$ convert --version
Version: ImageMagick 6.5.6-5 2010-01-30 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC

但是,一旦 RMagick 在 Rails 应用程序、irb、ruby 脚本等中加载或需要,ruby 进程就会完全挂起,只能通过kill -9 杀死。

我不确定如何调试这里的问题,因为从来没有错误消息或堆栈跟踪。有人有什么建议吗?

【问题讨论】:

    标签: ruby rubygems imagemagick rmagick homebrew


    【解决方案1】:

    RMagick 和 Ruby 1.8.6 在 Snow Leopard 上不再兼容,因为 Ruby 中存在一个尚未被反向移植的隐晦错误。

    要在 Snow Leopard 上使用 RMagick 和 Ruby,请确保您使用的是 Ruby 1.8.7 或更高版本。

    【讨论】:

      【解决方案2】:

      为了解决这个问题,我卸载了 rmagick gem 和 macports 版本的 imagemagick,然后使用此处的安装程序重新安装了 imagemagick:http://github.com/masterkain/ImageMagick-sl。然后我重新安装了 rmagick gem。

      无论出于何种原因,这都不会触发,但在前面的帖子中提到过,rmagick 将成功加载。

      【讨论】:

      • 这对我也有用,但请确保您使用该脚本的旧版本,该脚本使用 ImageMagick 6.5,而不是 6.6
      【解决方案3】:

      您是否考虑过只使用 MiniMagick,http://rubyforge.org/projects/mini-magick/,而不是使用 RMagick?我已经非常广泛地使用了 RMagick,并且可以说你最终会放弃它。无论是现在因为安装起来很痛苦,还是以后因为它占用大量内存并导致随机乘客/杂种进程崩溃,真正的区别是什么。

      MiniMagick 提供了与 RMagick 类似的功能,但它是命令行版本 convert 的包装器,并且更加稳定,因为它不会像 RMagick 那样尝试调用 ImageMagick API 和管理内存中的大型二进制对象。

      【讨论】:

      • 不幸的是,我无法控制切换到迷你魔法。
      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2010-11-30
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多