Проблема с Imagemagick на Lion, установленном вместе с Homebrew - PullRequest
7 голосов
/ 02 марта 2012

Я пытаюсь использовать гем Paperclip в проекте Rails, поэтому следовал документации и сначала установил Imagemagick по рецепту Homebrew.

Я добавил в мою модель мое приложение

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.>

В какой-то момент после некоторого поиска в Google я подумал, что может быть проблема с установкой пути по умолчанию в качестве переменной среды

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

Но я проверил, что это правильно, используя

which identify

И вернул этот путь

/usr/local/bin/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 через homebrew

Я попробовал все предложенное, включая

brew update
brew remove imagemagick
brew install imagemagick

Но это не помогло, я запускаю Lion 10.7.2 и установил инструменты разработчика.

Буду очень признателен за любые предложения.

Ответы [ 5 ]

10 голосов
/ 10 августа 2013

Есть более простое решение. Либо установите freetype:

brew install freetype

или, если он уже установлен, вам необходимо восстановить ссылки:

brew unlink freetype && brew link freetype

это все исправит за тебя. Ну, не все, но это по крайней мере решит эту проблему.

6 голосов
/ 03 марта 2012

Я столкнулся с той же проблемой. Запуск обновления программного обеспечения в операционной системе решил ее для меня. Версия libfree устарела. Скрепка, ImageMagick и Homebrew все работали нормально.

2 голосов
/ 20 ноября 2012

После обновления программного обеспечения на OSX MoutainLion ImageMagick перестал работать и для меня, но просто следуя шагам, предпринятым Крисом, сработало:

brew update
brew remove imagemagick
brew install imagemagick
0 голосов
/ 12 февраля 2013

Надеюсь, это кому-нибудь поможет: После того, как я безуспешно попробовал все эти решения (обновить brew, переустановить imagemagick, unlink и link снова), мне пришло в голову, что Скрепка может быть проблемой . Я просто делаю:

 bundle update paperclip

И проблема решена!

Примечание : imagemagick работает правильно для меня. Когда я запускаю identify -format %wx%h /path/to/a/file из консоли, он работает нормально (я получаю размер изображения). Проблема «идентификации» происходила только из моего приложения rails.

0 голосов
/ 23 октября 2012

libfreetype отсутствовал в моей установке Mountain Lion (10.8). В этом случае установка XQuartz заменит отсутствующую библиотеку. http://xquartz.macosforge.org/landing/

...