RMagick 在 OS X Snow Leopard 上需要时冻结 ruby 进程
我有一个很奇怪的问题。我已经通过自制程序安装了 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
但是,一旦在 Rails 应用程序、irb、ruby 脚本等中加载或需要 RMagick,ruby 进程就会完全挂起,只能通过 kill -9< /代码>。
我不确定如何调试这里的问题,因为从来没有错误消息或堆栈跟踪。有人有什么建议吗?
I've got quite a strange problem. I've installed ImageMagick via homebrew.
I've installed rmagick-2.12.2 and rmagick-2.11.2 with no issues.
I get no errors on installation of either.
ImageMagick seems to be installed and in my path:
$ 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
However, as soon as RMagick is loaded or required in a rails application, irb, ruby script, etc. the ruby process competely hangs and can only be kill via kill -9
.
I'm not sure how to debug what the issue is here since there is never an error message or stacktrace. Does anyone have any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
RMagick 和 Ruby 1.8.6 在 Snow Leopard 上不再兼容,因为 Ruby 中存在一个尚未向后移植的不明显错误。
要在 Snow Leopard 上使用 RMagick 和 Ruby,请确保您使用的是 Ruby 1.8.7 或更高版本。
RMagick and Ruby 1.8.6 are no longer compatible on Snow Leopard because of an obscure bug in Ruby that hasn't be backported yet.
To use RMagick and Ruby on Snow Leopard, make sure you're using Ruby 1.8.7 or above.
为了解决这个问题,我卸载了 rmagick gem 和 imagemagick 的 macports 版本,然后使用安装程序重新安装了 imagemagick: http://github.com/masterkain/ImageMagick-sl。然后我重新安装了 rmagick gem。
无论出于何种原因,这都不会触发之前帖子中提到的但 rmagick 将成功加载。
To get around this I uninstalled the rmagick gem and the macports version of imagemagick, and then reinstalled imagemagick with the installer here: http://github.com/masterkain/ImageMagick-sl. Then I reinstalled the rmagick gem.
For whatever reason, this does not trigger the but mentioned in the earlier post and rmagick will load successfully.
您是否考虑过仅使用 MiniMagick,http://rubyforge.org/projects/mini-magick/,而不是使用 RMagick?我非常广泛地使用 RMagick,可以说你最终会放弃它。无论是现在因为安装起来很痛苦,还是以后因为它占用大量内存并导致随机乘客/杂种进程崩溃,真正的区别是什么。
MiniMagick 提供与 RMagick 类似的功能,但它是 Convert 命令行版本的包装器,并且更加稳定,因为它不会像 RMagick 那样尝试调用 ImageMagick API 并管理内存中的大型二进制对象。
Have you considered just using MiniMagick, http://rubyforge.org/projects/mini-magick/, rather than using RMagick? I have used RMagick very extensively and can say that you are going to abandon it eventually. Whether it is now because it is a pain to install or later because it is so memory intensive and crashes random passenger/mongrel processes, what's really the difference.
MiniMagick gives similar functionality to RMagick but is a wrapper to the command line version of convert and is much more stable because it doesn't try to invoke the ImageMagick API and manage large binary objects in memory like RMagick does.