2011-04-27 10 views
12

Estoy trabajando en una aplicación Rail3. Después de luchar durante varias horas y finalmente instalar la gema rmagick 2.13.1 sin errores en win7x64/ruby ​​1.9.2, me encontré con otro error. Sí, he escuchado que la experiencia de los raíles en Windows podría ser dolorosa ...ImageMagick - "CORE_RL_magick_.dll no encontrado" o cómo instalar RMagick en Windows con ruby ​​1.9.2

Utilizo carrierwave para procesar y subir imágenes a AWS S3. Procesamiento parece

class IconUploader < CarrierWave::Uploader::Base 

require 'rmagick' 
include CarrierWave::RMagick 
... 
process :resize_to_fit => [100, 100] 
process :convert => :png 
... 

Cuando puedo activar la carga de archivos en mi máquina de desarrollo, me lanza un popup ventanas, diciendo

CORE_RL_magick_.dll not found

Google no fue muy útil en este caso.

Tengo mi variable PATH configurada en C:/ruby192/ImageMagick - es donde he instalado ImageMagick. Y esta carpeta tiene varios dlls CORE_RL que incluyen el magick uno. ¡Las DLL no están perdidas!

irb > require 'rmagick' retornos verdaderos y convert -version Muestra esto:

Version: ImageMagick 6.6.9-6 2011-04-14 Q16 http://www.imagemagick.org 
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC 
Features: OpenMP 

Así que tienen varios cuestión.

  1. ¿Cómo soluciono esto?
  2. elseif No tengo, ¿hay otras gemas y/o bibliotecas de gráficos que sean compatibles con windows y heroku?
  3. else tal vez hay una manera de configurar carrierwave, no para procesar imágenes en el entorno dev

Hasta ahora he intentado ImageMagick v 6.6.9 DLL de 32 bits, lo que da el error CORE_RL DLL, 64 bits estática, que no tiene cabeceras dev para compilar la gema RMagick, y 64 bits dinámico, lo que me da tonns de undefined reference errores durante la compilación gema, todas las pruebas, excepto la primera:

checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... yes 
checking for AcquireImage() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... no 
and so on... 

Gracias a todos .

Respuesta

18

Finalmente he logrado instalar ImageMagick y construir la joya RMagick y hacer que todo funcione. Hurra.

Parece que el problema estaba en la DLL misma. Cuando traté de registrarlo, Windows me dio un buen error sobre un problema con el dll.

Así que mi manera de resolver todos los temas es:

  1. Ir here
  2. Descargar ImageMagick 6.6.1-10 32 bits dinámico o cualquier otra versión , excepto la última versión 6.6.9 Actualmente, que tiene algunos problemas de DLL
  3. Instálelo con opciones: Agregar a PATH y encabezados de desarrollo. La ruta de instalación no debe contener espacios. Después de la instalación, debe darle un cuadro de mensaje sobre el registro dll exitoso.
  4. En la línea de comando, escriba convert -version para verificar si todo funciona. Se debe imprimir algo como:

    Versión: ImageMagick 6.6.1-10 2010-05-15 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC Características: OpenMP

  5. Instalar el DevKit si aún no lo has hecho

  6. Instalar la gema RMagick: gem install rmagick --platform=ruby -- --with-opt-lib=c:/ruby192/ImageMagick/lib --with-opt-include=c:/ruby192/ImageMagick/include

Debe imprimir

Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 

Y después de unos minutos si todo va bien, debería ver

Successfully installed rmagick-2.13.1 
1 gem installed 
Installing ri documentation for rmagick-2.13.1... 
Installing RDoc documentation for rmagick-2.13.1... 

y eso es todo. Espero que esto le ahorre a alguien el desperdicio de varias horas en la frustración.

Sólo dos enlaces más que fueron útiles: 1 y 2 si todavía no se puede instalar

+0

Saludos amigo, me alegro de que lo haya ordenado. El heroku bastante impresionado también tiene mensajería instantánea. No era consciente de eso, así que gracias por la información :) – 2potatocakes

+0

Acabas de salvar mi día. Muchas gracias, probé muchos tutoriales, solo este paso por paso me funcionó. <3 – Lucas

+0

Me alegro de que esto haya ayudado, Lucas :) En realidad, guardé el mío demasiado recientemente, cuando tuve que volver a instalar las ventanas y todas las cosas de ruby ​​/ rails. – bassneck

1

estoy bastante seguro de que vamos a tener problemas tratando de ejecutarlo en Heroku, así porque RMagick simplemente actúa como una joya para la interfaz con las bibliotecas de procesamiento de ImageMagick. ImageMagick también debe instalarse en la máquina local, lo que no sé que pueda hacer en Heroku. La instalación de ImageMagick contiene el archivo .dll que falta. Lo uso con bastante frecuencia en un proyecto local. Aquí está el enlace:

http://www.imagemagick.org/script/binary-releases.php?ImageMagick=d1l695sitj9h0vdqs78vgebqc5#windows

te recomiendo instalar el binario de 64 bits "estática" desde el enlace anterior. Me encontré con un problema o dos tratando de usar la versión dll.

De todos modos, descárguelo, instálelo y luego agregue la ruta C: \ Archivos de programa \ ImageMagick-6.5.6-Q8 (o donde esté el suyo) en la variable de entorno PATH.

Debería poder utilizar su joya RMagick correctamente.

Todo lo mejor.

+0

Hola, 2potatocakes) Probablemente debería haber señalado eso más claramente - Ya tengo la instalación de imagemagick. Descargué la versión dll de 32 bits. Después de su publicación probé los de 64 bits estáticos y dinámicos. El primero no tiene encabezados dev, así que no puedo compilar la gema rmagick. El segundo me da errores de referencia indefinidos al compilar la gema. Y hasta donde sé, Heroku tiene IM instalado en sus servidores. – bassneck

2

Este fue un dolor de tener instalado. En este momento, tuve que reinstalar Ruby, Rails, Devkit e ImageMagick. Lo mejor es hacer lo mismo e ir con las últimas versiones de todos ellos, excepto Rails, a menos que se enfríe con 3.1. En este momento estoy usando las últimas versiones:

ImageMagick-6.7.2-1-Q16-windows-dll - Win32 dynamic at 16 bits-per-pixel 

DevKit-tdm-32-4.5.2-20110712-1620-sfx 

rubyinstaller-1.9.2-p290 

Rails 3.0.9 

Mi sistema:

Windows 7, x64

Mi camino es un poco diferente de la respuesta aceptada.

Mi c:/ImageMagick

gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include 

he instalado Rubí primera con todas las opciones marcadas, entonces ImageMagick con la "opción de ruta asociado" y "headers" marcadas.

luego configurar el SDK de fácil:

1) cd c:\DevKit 
2) ruby dk.rb init 
3) ruby dk.rb install 

Ya después en el interior del SDK de (c:/SDK de) hizo esto y se instalan sin error:

gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include 

Si todavía tiene problemas entonces tal vez esto podría ayudarle, yo estaba tratando de esto, pero yo soy a familiarizados con el establecimiento de los ambientes y conseguir el paso 5 para el trabajo: http://www.waydotnet.com/blog/2010/02/rmagick-on-ruby-1-9-1-i386-mingw32-work-d/

El Paso 5 I Believ Puede cambiarse a lo que hice dentro del Devkit, ¡pruébelo y buena suerte!

1

Seguí los pasos en esta publicación, pero todavía tengo una cantidad de errores indefinidos. Si este es su caso también, puede intentar instalar la versión 32 de imagemagick, a pesar de tener un sistema operativo de 64 bits. Funcionó para mí Puede leer más al respecto aquí: rmagick not building on windows 7 undefined reference errors

Cuestiones relacionadas