Rmagick和OS X Lion

42

我刚从Leopard升级到Lion(不是新安装),之前运行良好的rmagick现在无法正常工作并给出以下错误:


当Pow尝试运行它时,您的Rack应用程序引发了异常。

LoadError: dlopen(/Users/rassom/.rvm/gems/ruby-1.8.7-p334/gems/rmagick-2.13.1/lib/RMagick2.bundle, 9): Library not loaded:
/System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/libclparser.dylib
Referenced from: /Users/rassom/.rvm/gems/ruby-1.8.7-p334/gems/rmagick-2.13.1/lib/RMagick2.bundle
Reason: image not found - /Users/rassom/.rvm/gems/ruby-1.8.7-p334/gems/rmagick-2.13.1/lib/RMagick2.bundle
~/.rvm/gems/ruby-1.8.7-p334/gems/rmagick-2.13.1/lib/RMagick2.bundle
~/.rvm/gems/ruby-1.8.7-p334/gems/rmagick-2.13.1/lib/rmagick.rb:11
~/.rvm/gems/ruby-1.8.7-p334/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require'
~/.rvm/gems/ruby-1.8.7-p334/gems/bundler-1.0.15/lib/bundler/runtime.rb:68:in `require'
~/.rvm/gems/ruby-1.8.7-p334/gems/bundler-1.0.15/lib/bundler/runtime.rb:66:in `each'

尝试卸载rmagick并重新安装,但没有帮助。

有人有解决方案吗?

谢谢 :-)


2
不确定这是否有帮助,但您尝试重新安装Imagemagick,然后重新安装rmagick了吗? - Brian
谢谢,Brian。是的,我尝试过了,但仍然不幸地出现了错误。 - rassom
6个回答

70

我也遇到了同样的问题,并通过卸载ImageMagick、删除rmagick gem并再次运行bundle install来解决它。

确保在重新安装和运行bundle install之前,从~/.rvm/gems/ruby-1.8.7-p334/gems/文件夹中完全删除rmagick gem,这样至少可以让你摆脱那个错误。


5
这对我很有用。不过,当我第一次尝试通过brew重新安装imagemagick时,它失败了,因为我在Lion上没有最新版本的xcode。对于那些遇到这个问题的人,提供一个信息:你可以通过App Store获取xcode。此外,即使App Store下载后会说xcode已经“安装”,你实际上仍需要转到Launch Pad来运行安装程序。几个小细节让我浪费了比我愿意承认的更多时间。 - Adam Rubin
太好了!刚刚升级到Lion系统,遇到了这个问题。@Marcus提供的解决方案非常有效。唯一的缺点是通过MacPorts安装ImageMagick花费了一个小时 :/ 不过没关系,现在一切都好了。 - raidfive
@raidfive,MacPorts 可能需要几个小时,因为它会尝试安装和编译每个库,即使这些库已经是系统库的一部分。你应该尝试使用 HomeBrew 作为更好的替代方案。在这里只需要一分钟。 - Gabriel Mazetto
Gabriel Mazetto - 是的,我在六个多月前转用Homebrew后就再也没有回头了。 - raidfive
也可以在OS X Mavericks上工作,使用homewbrew和最新的工具。 - guapolo
显示剩余5条评论

14

9
在我的情况下,错误是在通过homebrew升级ImageMagick之后发生的。与@Marcus的答案不同,我不需要卸载ImageMagick。只需要执行以下操作:
$ gem uninstall rmagick
$ bundle

干杯


4
在Mac OSX Lion(10.7)上,使用homebrew安装的imagemagick可以解决我的问题:
首先从rvm安装路径中删除已损坏的rmagick:~/.rvm/gems/ruby-1.9.3-p194/gems/
之后通过brew重新安装imagemagick,然后再次运行bundle:
brew uninstall imagemagick
brew install imagemagick
bundle

2

因为我之前在我的Rails应用程序中使用了'bundle package',所以仅仅卸载和重新安装gem并不能解决问题,因为vendor/目录下会保留一份副本。删除vendor/目录下的副本并再次运行bundle install即可解决问题。


1

目前这个页面是404。 - mmell
谢谢!我修复了帖子的链接,但是我不确定它现在还有多少相关性。 - Konstantin Gredeskoul

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