Подтвердить что ты не робот

Загрузка изображений с портретами в Rails - Paperclip:: CommandNotFoundError

Я использую paperclip для обработки загрузки изображений на рельсы. он отлично работал на моей машине dev OSX, но теперь на моем веб-сервере я получаю эту ошибку:

[paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError>
[paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError>

Теперь мне ясно, почему; Идентификация фактически находится в /usr/bin/not/Users/marky/bin/, которая находится на моей машине dev. У меня есть:

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

в моем development.rb, но я все еще получаю ошибку. Я не знаю, как это исправить, может ли кто-нибудь помочь?

4b9b3361

Ответ 1

Если вы размещаете свое приложение с помощью Пассажира, имейте в виду, что у Пассажира нет той же переменной $PATH, что и ваш зарегистрированный пользователь. Хороший способ проверить, видит ли Пассажир команды ImageMagick, добавить это к одному из ваших шаблонов erb:

<%= `which convert` %>
<%= `echo $PATH` %>

и сравнить результаты с запуском одних и тех же команд в вашем терминале. Другая возможность - ImageMagick не может найти нужные ему библиотеки. В этом случае вам может потребоваться экспортировать другую переменную, чтобы позволить ImageMagick знать, где находятся libs:

# my config/environments/development.rb
Paperclip.options[:command_path] = "DYLD_LIBRARY_PATH='/Users/jch/Library/ImageMagick-6.6.3/lib' /Users/jch/Library/ImageMagick-6.6.3/bin"

Надеюсь, что поможет -jerry

Ответ 2

Установите следующие пакеты для работы с imagemagick

1) apt-get install imagemagick
2) apt-get install libmagickwand-dev
3) gem install rmagick

Я думаю, что вам не хватает второго.

Ответ 3

Вы можете установить ImageMagick на свой компьютер. Эта проблема возникает, потому что она не найдет некоторые методы.

Чтобы проверить, что ImageMagick установлен на вашем компьютере, просто запустите команду "convert" на терминале.

Ответ 4

В моем случае установка параметров пути командной строки Paperclip в файле среды для производственного сервера (NGINX + Passenger) не работала.

Вместо этого я установил его в файле инициализации paperclip.rb:

Paperclip.options[:command_path] = "/usr/bin/" if Rails.env.production?

Ответ 5

Проверьте, установлена ​​ли программа imagemagick при запуске

 which convert

в консоли. В моем случае результатом было следующее:

$ which convert
/usr/bin/convert

Затем я добавляю следующую строку в config/environment/development.rb, которая сообщает папке, где можно найти Imagemagick

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