2009-10-07 3 views
12

Я получаю следующее сообщение об ошибке в моем development.logPaperclip Ошибка

[скрепка] ошибка была получена при обработке: # < Paperclip :: NotIdentifiedByImageMagickError:/TMP/stream28514-0 не признаваемые в ' определить»команду>

и я гугле об этой ошибке и я обнаружил, что многие люди решили эту проблему, добавив следующую строку Paperclip.options. [: command_path] =„/ USR/местные/бен“

Однако, я все равно получаю такую ​​же ошибку даже после добавления этой строки! Я пробовал все возможное!

Любая помощь была бы высоко оценена!

С уважением,

PUNIT

+0

Какую операционную систему вы используете?/usr/local/bin имеет смысл только в системе на основе unix. – Karl

+0

да я на ubuntu –

ответ

11

В Paperclip.options [: command_path] установка для размещения исполняемых файлов ImageMagick (в данном случае определить). Попробуйте запустить which identify и установите параметр в качестве возвращаемого каталога. Если эта команда ничего не возвращает, убедитесь, что ImageMagick установлен правильно.

+1

Эй, спасибо за ваш ответ. , который идентифицирует возврат/usr/local/bin Также я заметил что-то странное. Недопустимый путь/tmp/stream28514-0. Таким образом, файл не сохраняется.Кто-нибудь знает, почему это происходит? –

+0

paperclip должен удалить файлы после их обработки. Не могли бы вы попытаться запустить идентификатор из командной строки? Недавно у меня была аналогичная проблема, когда я обновил ImageMagick и забыл запустить ldconfig. – tliff

3

Это означает, что он не может найти исполняемый файл ImageMagick identify в том месте, которое вы указали в Paperclip.options[:command_path] (в вашем случае /usr/local/bin).

Это Tipically вызвано двум причинам:

  1. Это может быть, что вы на самом деле не установлен ImageMagick.
    • РЕШЕНИЕ: установить:
      • Для MAC: sudo port install ImageMagick (который устанавливает двоичный релиз)
      • Для UBUNTU: sudo sudo apt-get install imagemagick
  2. Это может быть, что место, где вы установили ImageMagick не /usr/local/bin, а что-то еще.

    • РЕШЕНИЕ: найти, где он установлен, или с помощью команды:

      which identify (в случае, если идентифицировать находится в текущем PATH, как это должно быть)

    или через необработанную находку через файловую систему:

    find/-name identify

Во всяком случае, обычное место для тех файлов в Ubuntu должны быть /usr/bin

5

Вот что работал для меня ...

Я удалил imagemagick, который я установил с официальной веб-страницы. Я переустановил его от SUDO APT-получить установку ImageMagick

тогда я действительно писал Paperclip.options [: command_path] = "к/исправить/путь"

ПРОБЛЕМА ЗДЕСЬ БЫЛ ...

когда Я запускал «которые идентифицируют», что он указывает, что путь «usr/local/bin/ident» означает, что мы должны были указать путь «usr/local/bin» в качестве моего пути.

НО НО НЕ РАБОТАЕТ!

Я неожиданно обнаружил, что я идентифицирую также в пути «usr/bin». Поэтому я изменил: «usr/local/bin» до «usr/bin»

И это все!

+0

Я уже установил его, но переустановить его через «обновление для пива ImageMagick» исправил его для меня. Даже не нужна опция 'command_path' –

0

USR/бен работал со мной (Fedora 14 ядра)

0

Попробуйте выполнить команду определить в командной строке и посмотреть, если это дает какое-то сообщение об ошибке. Я узнал, что на моем сервере отсутствовали некоторые библиотеки делегатов.

identify example.jpg 
2

Есть две возможные проблемы:

  1. Image Magick не установлен или сломанный
  2. Paperclip не смог найти изображения Магию

Давайте их по одному :

1. Проверьте, есть ли у вас изображение Magick installe d и она работает

Тип:

identify 

в командной строке, он должен работать. Если он не найден или не работает, установите Image Magick. Это исправить? Если нет, продолжайте:

2. Помощь Paperclip найти изображения Магию

Тип:

which identify 

в командной строке, чтобы получить путь к команде идентификации. Теперь в production.rb добавьте следующую строку в блок конфигурации:

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

Перезагрузите ваш сервер. Это должно исправить это.

Смежные вопросы