2010-07-11 10 views
24

Uso el clip para manejar las cargas de imágenes en los rieles. funcionó bien en mi máquina dev OSX, pero ahora en mi servidor web me sale este error:Carga de imágenes de clips en Rails - 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> 
[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> 

Ahora está claro para mí la razón; identificar es en realidad en/usr/bin/not/Users/marky/bin/que es de mi máquina de desarrollo. Tengo:

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

en mi development.rb, pero todavía estoy consiguiendo el error. No tengo idea de cómo solucionar esto, ¿alguien puede ayudar?

+0

estoy teniendo el mismo problema también. Parece que tiene algo que ver con el pasajero en mi caso porque funcionó bien con mestizo. ¿Estás usando pasajero? – TenJack

+0

Estaba teniendo un error similar, pero cuando configuro Paperclip.options [: command_path] = "/ usr/bin" en development.rb funciona ahora. ps, estoy en Heroku –

Respuesta

16

Si aloja su aplicación con Passenger, tenga en cuenta que Passenger no tiene la misma variable $ PATH que su usuario conectado. Una buena manera de comprobar si los pasajeros pueden ver los comandos de ImageMagick es añadir esto a uno de sus plantillas erb:

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

y comparar los resultados con el funcionamiento de los mismos comandos en el terminal. Otra posibilidad es ImageMagick no puede encontrar las librerías que necesita. En este caso, puede que tenga que exportar otra variable para dejar ImageMagick sabe donde las bibliotecas son:

# 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" 

Espero que ayude -Jerry

+1

por el mismo token, puede simplemente escribir en shell: heroku consola% x {convert -version} +% x {which convert} –

+2

asegúrese de reiniciar el servidor, después de agregar (o cambiando) Paperclip.options [: vía_de_comando] a los entornos/desarrollo.rb – gef

5

Puede instalar ImageMagick en su máquina. Este problema se genera porque no encontrará algunos métodos.

Para comprobar que ImageMagick está instalado en su máquina, simplemente ejecute el comando 'convertir' en la terminal.

+0

hola, gracias por su respuesta. sí, tengo ImageMagick instalado en mi máquina.Cuando ejecuto el comando 'convertir' en el terminal funciona bien. cualquier otra idea? es claramente el camino, pero no tengo idea de cómo cambiarlo. – Marky

+0

ah, pero si ejecuto 'identificar' desde la línea de comandos también funciona bien, sin importar de qué carpeta lo ejecute, ¿significa esto que hay otro problema? – Marky

17

Instalar siguientes paquetes para trabajar con ImageMagick

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

Creo que se echa en falta la segunda.

+0

apt-get install imagemagick Lectura de listas de paquetes ... Hecho Generando árbol de dependencias Leyendo información del estado ... Hecho imagemagick ya es la versión más reciente. Los siguientes paquetes se instalan automáticamente y ya no son necesarios: apache2-mpm-worker libapr1 libaprutil1-LDAP apache2-utils-apache2.2 común libaprutil1-DBD-sqlite3 apache2.2-bin ssl-cert libaprutil1 Uso 'apt -get autoremove 'para eliminarlos. 0 actualizado, 0 recién instalado, 0 para eliminar y 0 no actualizado. – Marky

+0

apt-get install libmagickwand-dev Leyendo listas de paquetes ... Hecho Construyendo el árbol de dependencia Leyendo información del estado ... Hecho libmagickwand-dev ya es la versión más nueva. Los siguientes paquetes se instalan automáticamente y ya no son necesarios: apache2-mpm-worker libapr1 libaprutil1-LDAP apache2-utils-apache2.2 común libaprutil1-DBD-sqlite3 apache2.2-bin ssl-cert libaprutil1 Uso 'apt -get autoremove 'para eliminarlos. 0 actualizado, 0 recién instalado, 0 para eliminar y 0 no actualizado. – Marky

+0

gem install rmagick Creación de extensiones nativas. Esto podría demorar un tiempo ... Se instaló con éxito rmagick-2.13.1 1 joya instalada Gracias! Simplemente ejecuté todo lo anterior. ¿Eso significa que Rmagick en realidad no fue instalado? – Marky

1

Compruebe si tiene ImageMagick instalado ejecutando

which convert 

en su consola. En mi caso, el resultado fue el siguiente:

$ which convert 
/usr/bin/convert 

Luego añadir la siguiente línea a config/ambientes/development.rb que cuenta Paperclip dónde encontrar Imagemagick

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

Si la conversión muestra/usr/bin/convert, en paperclip.options [: vía_de_comandos] = "/ usr/local/bin /" o aperclip. options [: command_path] = "/ usr/bin/convert /" – Sam

2

en mi caso , la configuración de las opciones de ruta del comando Paperclip en el archivo de entorno para el servidor de producción (NGINX + Passenger) no funcionó.

lo he instalado en el fichero de inicialización paperclip.rb lugar:

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

Tuve este problema después de actualizar nginx. Gracias por la solución! – penner

Cuestiones relacionadas