error al instalar RMagick desde gem
-
02-07-2019 - |
Pregunta
Intentar instalar la gema RMagick falla con un error acerca de no poder encontrar las bibliotecas de ImageMagick, aunque estoy seguro de que están instaladas.
La salida pertinente de gem install rmagick es:
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.6.0. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information.
*** extconf.rb failed ***
Y mirando en mkmf.log revela:
have_library: checking for InitializeMagick() in -lMagick... -------------------- no
"/usr/local/bin/gcc -o conftest -I.
-I/usr/local/lib/ruby/1.8/i386-solaris2.10 -I. -I/usr/local/include/ImageMagick -I/usr/local/include/ImageMagick conftest.c -L. - L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/local/lib -L/usr/local/lib -R/usr/local/lib -lfreetype -lz -L/usr/local/lib -L/usr/local/lib -lMagickCore -lruby-static - lMagick -ldl -lcrypt -lm -lc"
ld: fatal: library -lMagick: not found
ld: fatal: File processing errors. No output written to conftest
Esto está en Solaris 10 x86 con ImageMagick versión 6.4.3 y RMagick versión 2.6.0
Si necesito agregar algo a LDFLAGS, no me queda claro qué sería. Instalé ImageMagick desde la fuente y debería estar en los lugares habituales. es decir,
# ls -l /usr/local/lib/ | grep -i magick
drwxr-xr-x 5 root root 512 Sep 24 23:09 ImageMagick-6.4.3/
-rw-r--r-- 1 root root 10808764 Sep 25 02:09 libMagickCore.a
-rwxr-xr-x 1 root root 1440 Sep 25 02:09 libMagickCore.la*
-rw-r--r-- 1 root root 2327072 Sep 25 02:09 libMagickWand.a
-rwxr-xr-x 1 root root 1472 Sep 25 02:09 libMagickWand.la*
ImageMagick-6.4.3 / no contiene nada interesante y no puedo encontrar ningún otro archivo al que pueda apuntar la instalación de gemas.
¡Cualquier consejo sería muy apreciado! googlear no ha sido demasiado útil.
gracias -
Solución
problema resuelto.
RMagick no pudo encontrar ImageMagick porque me olvidé de construir los objetos compartidos (no había archivos .so instalados como puede ver en "ls" en la pregunta original). La solución fue agregar --with-shared
a mis opciones de configuración.
Sin embargo, esto causó otros problemas. En particular, make
falla con " símbolo indefinido " mensajes para libiconv. Esto se resolvió configurando CFLAGS para que apunte a libiconv:
export CFLAGS="-liconv"
Finalmente, mi comando de configuración exitoso fue:
./configure --disable-static --with-modules --without-perl --with-quantum-depth=8 --with-bzlib=no --with-libiconv
y después de eso, make
, make install
y gem install rmagick
funcionaron sin problemas.
gracias,
R
Otros consejos
Me encontré con este problema en OpenSuSE 11.4: después de instalar una carga completa de paquetes, resultó que libtool era el elemento que faltaba ...
El enlazador no puede encontrar libMagick en los lugares estándar. ¿Quizás instaló ImageMagick en un lugar no estándar que debe especificar a través de LDFLAGS?