在macosx上使用带有imagemagick的回形针

时间:2012-02-22 11:24:28

标签: ruby-on-rails paperclip passenger

我正在尝试使用带有phusion乘客的macosx上的回形针。当我尝试上传时,apache会给我:

dyld: Library not loaded: /usr/local/lib/libjpeg.8.dylib
  Referenced from: /usr/local/lib/libtiff.3.dylib
  Reason: Incompatible library version: libtiff.3.dylib requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0

但是当我用 rails服务器运行我的rails应用程序时,一切正常。当我尝试在终端中使用识别命令时。

Paperclip给我这个错误:

/Var/Folders/Nj/9xt2kprd01n3ssch3rd44pmh0000gn/T/Stream20120222-92627-1l2u297.Png Is Not Recognized By The 'Identify' Command.

有什么想法吗?我正在使用MacOsx Lion

2 个答案:

答案 0 :(得分:2)

继我的评论之后,我遇到了类似的问题并解决了以下问题(不确定这是否适合您)。

根据this homebrew/imagemagick issue,预编译的二进制文件可能会在升级其他内容时引用错误的库版本。

因此,从源代码重新编译Imagemagick可能会有所帮助。对于我自己的安装,通过Homebrew,这样做了:

> brew uninstall imagemagick
> brew install imagemagick --build-from-source

我的猜测是,在你的情况下,Apache和/或Passenger可能会调用不同版本的Imagemagick,或者作为具有不同加载路径的不同用户运行,因此找不到库。

答案 1 :(得分:1)

我在OS X 10.8上遇到了同样的问题,从源代码重新安装imagemagick没有任何效果,但是从源代码重新安装libtiff。好极了! :)

brew uninstall libtiff
brew install libtiff --build-from-source

我通过使用otool -L发现了这一点,这表明libtiff在某种程度上指向了比我系统上安装的更新版本的libjpeg。从源代码重新安装它会导致它与旧版本链接。

希望有所帮助!