安装了Homebrew的Lion上的Imagemagick问题

Chr*_*ris 7 homebrew imagemagick freetype paperclip osx-lion

我正在尝试在Rails项目中使用Paperclip gem,因此遵循文档并首先使用Homebrew配方安装Imagemagick.

我在我的模型中添加了我的附件

has_attached_file :screenshot
Run Code Online (Sandbox Code Playgroud)

这工作正常,文件上传按预期运行

然后我想为此添加缩略图,所以再次按照文档添加到模型中

  has_attached_file :screenshot, 
                :styles => { :medium => "300x300>",
                             :thumb => "100x100>" }
Run Code Online (Sandbox Code Playgroud)

此时上传不再有效

我查看了开发日志并注意到了这一点:

[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.>
Run Code Online (Sandbox Code Playgroud)

在一些谷歌搜索之后,我认为将默认路径设置为环境变量可能是个问题

Paperclip.options[:command_path] = "/usr/local/bin/"
Run Code Online (Sandbox Code Playgroud)

但我检查了这是正确的使用

which identify
Run Code Online (Sandbox Code Playgroud)

它回归了这条道路

/usr/local/bin/identify
Run Code Online (Sandbox Code Playgroud)

正如所料

然后我尝试从命令行运行识别作为测试并得到此错误

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
Run Code Online (Sandbox Code Playgroud)

所以我认为我的问题不在于回形针,而在于通过自制软件安装imageMagick

我已经尝试了所有建议包括

brew update
brew remove imagemagick
brew install imagemagick
Run Code Online (Sandbox Code Playgroud)

但它没有帮助我运行Lion 10.7.2并安装了开发人员工具.

任何建议将非常感谢.

Geo*_*rge 10

有一个更简单的解决方案.安装freetype:

brew install freetype
Run Code Online (Sandbox Code Playgroud)

或者,如果已经安装,那么您需要重新创建链接:

brew unlink freetype && brew link freetype
Run Code Online (Sandbox Code Playgroud)

这将为您解决所有问题.好吧,不是一切,但它至少可以解决这个问题.


jme*_*jia 6

我遇到了同样的问题.在操作系统上运行软件更新为我解决了这个问题.libfree的版本已过期.Paperclip,ImageMagick和Homebrew都运转良好.