我正试图在Rails项目中使用Paperclip gem,因此遵循了文档,并首先使用Homebrew配方安装了Imagemagik。
我在我的模型中添加了我的附件
has_attached_file :screenshot
这工作正常,文件上传功能如预期
然后我想添加缩略图,所以再次遵循文档并添加到模型中
has_attached_file :screenshot,
:styles => { :medium => "300x300>",
:thumb => "100x100>" }
此时,上传不再工作
我查看了开发日志并注意到:
[32mCommand[0m :: identify -format %wx%h '/var/folders/ky/r5gsdhbn6yggbglsg727cc900000gn/T/stream20120302-60051-eh17n7.png[0]'
[paperclip] An error was received while processing: #<Paperclip::NotIdentifiedByImageMagickError:
/var/folders/ky/r5gsdhbn6yggbglsg727cc900000gn/T/stream20120302-60051-eh17n7.png is not recognized by the 'identify' command.>
在谷歌搜索之后,我认为将默认路径设置为环境变量可能有问题
Paperclip.options[:command_path] = "/usr/local/bin/"
但我用检查了一下这是正确的
which identify
它返回了这条路径
/usr/local/bin/identify
如预期
然后我尝试从命令行运行identify作为测试,得到了这个错误
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
Referenced from: /usr/local/bin/identify
Reason: Incompatible library version: identify requires version 14.0.0 or later, but libfreetype.6.dylib provides version 13.0.0
Trace/BPT trap: 5
所以我认为我的问题不在于回形针,而是通过自制安装imageMagick
我已经尝试了所有建议,包括
brew update
brew remove imagemagick
brew install imagemagick
但这对我运行Lion 10.7.2并安装开发工具没有帮助。
如有任何建议,我们将不胜感激。
有一个更简单的解决方案。安装免费类型:
brew install freetype
或者,如果它已经安装,那么你需要重新创建链接:
brew unlink freetype && brew link freetype
这将为你解决一切问题。不是所有的,但它至少能解决这个问题。
我遇到了同样的问题。在操作系统上运行软件更新为我解决了这个问题。libfree的版本已经过期。Paperclip、ImageMagick和Homebrew都运行良好。
在OSX MoutainLion ImageMagick上的软件更新后,我也停止了工作,但只需遵循Chris采取的步骤即可:
brew update
brew remove imagemagick
brew install imagemagick
libfreetype在我的Mountain Lion(10.8)安装中丢失。在这种情况下,安装XQuartz将替换丢失的lib。http://xquartz.macosforge.org/landing/
我希望这对某人有所帮助:在我尝试了所有这些解决方案(更新brew、重新安装imagemagick、取消链接和再次链接)但都没有成功后,我想到了回形针可能是个问题。我只是:
bundle update paperclip
问题解决了!
注意:imagemagik对我来说工作正常。当我从控制台运行identify -format %wx%h /path/to/a/file
时,它工作正常(我得到了图像的大小)。"识别"问题只发生在我的rails应用程序中。