我正在尝试在ruby中使用CarrierWave,并且它一直在失败。
我设法使用convert
实用程序重现错误。
> convert file.jpg file.bmp
convert: unable to load module `/usr/local/Cellar/imagemagick/6.9.7-3/lib/ImageMagick//modules-Q16/coders/jpeg.la': file not found @ error/module.c/OpenModule/1302.
convert: no decode delegate for this image format `JPEG' @ error/constitute.c/ReadImage/504.
convert: no images defined `file.bmp' @ error/convert.c/ConvertImageCommand/3258.
但我看到jpeg.la确实存在的文件。 我使用Homebrew(brew install ImageMagick)安装了ImageMagick,尝试升级到最新版本但仍然失败。
有什么想法吗?
答案 0 :(得分:2)
尝试升级 imagemagick @ 6 ,而不是普通的 imagemagick 公式。
2016年12月/ 2017年1月,carrierwave使用了rmagick,它依赖于ImageMagick的 6 版本。大约在同一时间,brew转移到了ImageMagick的 7 版本。此busted rmagick和载波功能,Hombebrew/core-brew项目added an imagemagick@6公式。
运行carrierwave的快速而肮脏的修复方法是brew install imagemagick@6 && brew link imagemagick@6 --force
。
如果是这种情况,那么brew upgrade imagemagick
将不会更新rmagick正在使用的库。相反brew upgrade imagemagick@6
是必要的。
替代路线可能正在从使用rmagick切换到mini_magick。在撰写本文时(2017年10月至03年),mini_magick gem似乎更好地维护,并且似乎与最新版本的imagemagick一起使用。