纸夹无法找到ImageMagick。

8

好的,我已经通过homebrew在本地安装了imagemagick,并且Gemfile.lock显示paperclip锁定在版本paperclip (3.0.4)

按照设置说明,我在development.rb中设置了以下命令:

Paperclip.options[:command_path] = "/usr/local/bin/"

这与终端显示的内容相符

$ which identify
  # => /usr/local/bin/identify

然而,当我尝试上传图片时,我的表单会出现以下错误。
/var/folders/dm/lnshrsls2zz6l4r_tkbk7j2w0000gn/T/avatar20120522-44111-gfis2q.jpg is not recognized by the 'identify' command.

我发现相关的SO问题都认为问题出在Paperclip找不到identify命令。

我使用了Paperclip生成器将头像添加到我的数据库中,我的模型包含:

has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }

此外,如果我加载rails c并查看Paperclip.options,我可以看到命令路径已经在哈希中正确设置。目前不太确定该怎么做。任何帮助都将不胜感激。

它返回 dyld: Library not loaded: /usr/local/lib/libtiff.3.dylib Referenced from: /usr/local/bin/identify Reason: image not found Trace/BPT trap: 5 - DVG
据我所知,运行OS X系统时,ld.so.conf在这里并不存在。 - DVG
如果您想查看二进制文件使用了哪些库,可以使用 otool -L /usr/local/bin/identify - Mattias Wadman
感谢您的帮助。我卸载了Homebrew并更新了它,现在一切都正常了。谢谢大家。 - DVG
很好。如果你找出了真正的问题,请回答你自己的问题,这样其他人也可以得到帮助。我猜测 libtiff 缺失,因为 OSX 似乎已经尝试从 /usr/local/lib 加载。 - Mattias Wadman
显示剩余3条评论
3个回答

10

很高兴你通过运行该命令找到了正确的解决方案。

问题在于您的ImageMagick编译为错误的架构:

dyld: Library not loaded: /usr/local/lib/libtiff.3.dylib Referenced from: /usr/local/bin/identify Reason: image not found Trace/BPT trap

卸载ImageMagick,更新Homebrew并重新安装是正确的做法。


3
对我来说,“brew update && brew upgrade imagemagick”这个命令解决了问题。 - Leonid Shevtsov

4

以防万一,我用了这个技巧让它工作:

ln -s /usr/local/Cellar/libtiff/3.9.5/lib/libtiff.3.dylib /usr/local/lib/libtiff.3.dylib

并且它的工作非常顺畅 :)

0

不太确定具体问题是什么,但我卸载了Image Magick,更新了Homebrew并重新安装了imagemagick,现在一切都正常了。


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