2010-12-22 11 views
6

estoy desplegando una railsapp a UbuntuRMagick no encontrará ImageMagick en el servidor

RMagick se instala a través de "paquete de instalación del proveedor". de que se instale, y la aplicación se ejecuta - pero este error es lanzado:

uninitialized constant Image::Magick 

al intentar leer:

source_image = Magick::Image.read("#{Rails.root}/public/system/assets/#{self.id}/original/#{self.asset_file_name}").first 

que he hecho lo siguiente:

  • uninstsalled, a continuación, reinstalado, ImageMagick en el servidor
  • desinstalado, luego reinstalado, rmagick en el servidor
  • desinstalado, entonces reinstalado, RMagick través bundler
  • carrera con sólo el bundler RMagick instalado
  • de ejecución con el bundler y sistema RMagick instalado
  • proxy nginx a los rieles-servidor para que el error no está relacionado con pasajero

voy un poco loco tratando de averiguar lo más que pueda hacer para que RMagick ver ImageMagick

+0

¿Puede mostrarnos el stacktrace de este error, por favor? –

+0

Gracias por preguntarle a Ryan. Resultó que la persona que originalmente implementó la aplicación no la configuró en el Gemfile porque prefiere/necesita funcionar en muchos entornos. –

Respuesta

39

Después de horas de lucha y recompilar ImageMagick y RMagick bajo diferentes combinaciones, tuve suerte en una solución de 1 línea

Gemfile

- gem 'rmagick' 
+ gem 'rmagick', :require => 'RMagick' 

Bündler requiere el nombre joya por defecto,

decir :require => 'rmagick'.

Pero el archivo que se está incluyendo es realmente 'RMagick.rb'. Para sistemas de archivos que no distinguen entre mayúsculas y minúsculas, como OS X, esto funcionará, pero para los sistemas de archivos sensibles a las mayúsculas y minúsculas, como Ubuntu, no se encontrará el archivo.

Esta puede ser una de las razones por las que no se puede producir el error en el sistema de desarrollo, incluso cuando se ejecuta en modo de producción.

+4

Me salvó mucho tiempo. Gracias. – Ben

+0

Gracias, ¿puedes explicar por qué esto resuelve el problema? – Joe

+0

Encontré este pequeño consejo útil en el día de Acción de Gracias. GRACIAS. –

0

Al hacer un gem install rmagick como usuario con privilegios, se solucionó el problema.

No es realmente una solución útil, pero supongo que en mi caso no tenía realmente instalado RMagick correctamente, aunque bundler pensó que lo hice.

Cuestiones relacionadas