RMagick congela procesos rubí cuando sea necesario en OS X Leopard
-
25-09-2019 - |
Pregunta
Tengo un problema bastante extraño. He instalado ImageMagick a través de homebrew.
He instalado RMagick-2.12.2 y 2.11.2-RMagick sin problemas.
No me sale errores en la instalación de cualquiera.
ImageMagick parece estar instalado y en mi camino:
$ convert --version
Version: ImageMagick 6.5.6-5 2010-01-30 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
Sin embargo, tan pronto como se carga RMagick o requiere en una carriles de aplicación, IRB, escritura rubí, etc. cuelga competely proceso rubí y sólo puede ser kill través kill -9
.
No estoy seguro de cómo depurar cuál es el problema aquí, ya que no hay nunca un mensaje de error o StackTrace. ¿Alguien tiene alguna sugerencia?
Solución
RMagick y Ruby 1.8.6 ya no son compatibles en Snow Leopard debido a un error desconocido en Ruby que no haya sido portado todavía.
Para usar RMagick y Ruby en Snow Leopard, asegúrese de que está utilizando Rubí 1.8.7 o superior.
Otros consejos
Para evitar esto he desinstalado la gema RMagick y la versión macports de ImageMagick, y ImageMagick se vuelve a instalar con el instalador aquí: http://github.com/masterkain/ImageMagick-sl . Entonces reinstalé la gema RMagick.
Por alguna razón, esto no activa el mencionado pero en el post anterior y RMagick se carga correctamente.
¿ha considerado simplemente usando MiniMagick, http://rubyforge.org/projects/mini-magick / , en lugar de utilizar RMagick? He utilizado muy ampliamente RMagick y puedo decir que usted va a abandonar eventualmente. Tanto si se trata ahora, ya que es un dolor de instalar o temprano, porque es muy intensivo de memoria y se bloquea al azar de pasajeros / procesos mestizos, lo que es realmente la diferencia.
MiniMagick da una funcionalidad similar a RMagick pero es una envoltura para la versión de línea de comandos de convertido y es mucho más estable, ya que no trata de invocar la API ImageMagick y gestionar grandes objetos binarios en la memoria como RMagick hace.