He compilado ImageMagick en mi CentOS, y RMagick no se instalará

16

Instalé ImageMagick a través de (Usando ImageMagick 6.7.3-7)

./configure --prefix=/usr && make && make install

Cuando trato de

gem install imagemagick

yo obtengo

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.13.1. Can't find MagickWand.h.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby

Esto a pesar del hecho de que MagickWand.h ya está en el sistema en /usr/include/ImageMagick/wand/MagickWand.h. Entonces la pregunta es, ¿cómo hago para que el compilador se vea allí?

Ken Li
fuente

Respuestas:

26

Tuve el mismo problema en CentOS usando la última versión (a partir de diciembre de 2011), y lo arregló con:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

en mi archivo .bashrc para recoger MagickCore.pc, luego creé dos enlaces simbólicos:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick

Y voila, se encontró MagickWand.h, se recogió MagickCore.pc ... gema instalada con éxito.

Me imagino que otra solución sería modificar las opciones de configuración establecidas durante la instalación de ImageMagick, pero no soy suficiente como administrador de sistemas para tener claro cuál sería la opción y la ubicación correcta para estos archivos. Después de 45 minutos de buscar en Google, no pude imaginar dónde se supone que viven estos archivos , para que el sistema de instalación de gemas los recoja automáticamente.

¡Salud!

EDITAR: 2014-10-01

Acabo de hacer esto nuevamente para CentOS 7, y los lncomandos anteriores no eran necesarios. Sin embargo, me encontré con un problema en el que recibí "Package MagickCore no se encontró en la ruta de búsqueda pkg-config". Al correr sudo gem install rmagick.

El problema fue el restablecimiento del entorno en / etc / sudoers. Después de ejecutar sudo visudopara editar el archivo sudoers, agregué Defaults env_keep += "PKG_CONFIG_PATH"a la sección correspondiente, actualicé la ruta segura para incluir / usr / local / bin, y luego la instalación funcionó de maravilla.

Irongaze.com
fuente
Estaba teniendo el mismo problema en RedHat 6 y su solución funcionó para mí. ¡Gracias un montón!
Callmeed
¡Impresionante, esto incluso funcionó como un encanto en el león de montaña! Necesito ejecutar toda la declaración anterior para que se instale rmagick gem.
Hendra Uzia
Intenté esto y obtuve "/ usr / local / bin / Magick-config: línea 41: pkg-config: comando no encontrado / usr / local / bin / Magick-config: línea 47: pkg-config: comando no encontrado / usr / local / bin / Magick-config: línea 50: pkg-config: comando no encontrado / usr / local / bin / Magick-config: línea 53: pkg-config: comando no encontrado "
Jonny
13

ImageMagick generalmente colocará MagickCore aquí:

/usr/local/lib/pkgconfig/MagickCore.pc

Si el tuyo no está allí, puedes encontrarlo así:

find / -name MagickCore.pc

Ahora conoce su ruta de pkgconfig:

/usr/local/lib/pkgconfig

Configura el entorno cuando instales la gema:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
joelparkerhenderson
fuente
¡Gracias! Trabajó para mí en una imagen Bitnami Ubuntu 12.04 ..
JD
¡Gracias! similar aquí funcionó: find / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux
7

Para CentOS, resolví este problema instalando el paquete "ImageMagick-devel":

yum install ImageMagick-devel

Munish
fuente
1
esta es la mejor respuesta :)
kovpack
2

La clave está en la salida de configuración donde dice "buscando varita mágica / MagickWand.h" - claramente el directorio ImageMagick no se espera en / usr / include, lo que significa que necesita mover el contenido de ese directorio un nivel o usted necesita instalar ImageMagick de manera diferente. Por lo general, poner cosas directamente en / usr es una mala idea para cualquier cosa que el sistema no proporcione: si separa todas las cosas que agrega en / usr / local y deja / usr en gran medida solo, encontrará el sistema mucho más fácil administrar también, ya que podrá (mucho después de haberse olvidado de esto) averiguar qué agregó frente a lo que vino con el sistema.

jkh
fuente
Un buen consejo, aunque todavía no ha respondido la pregunta de cómo puede forzar al compilador a buscar en ciertos directorios el archivo de encabezado.
Ken Li
3
Bueno, las invocaciones del compilador están sucediendo a través del comando gem (obliga al compilador a buscar en ubicaciones alternativas con el indicador -I, pero este usuario no está usando el compilador directamente) y es mejor configurar las cosas con el comando configure tal esa bondad ocurre sin tener que alterar nada más. El uso de la variable de entorno PKG_CONFIG_PATH que configura sigue haciendo chillidos puede hacer el truco si hay un archivo MagickCore.pc disponible. "find / usr -name MagickCore.pc" y luego verifica si existe, luego agrega el directorio en el que está "setenv PKG_CONFIG_PATH / path / to / where / find / found / it"
jkh
Actualicé PKG_CONFIG_PATH a /Dir/to/where/found/MagickCore.pc y todavía termino con "No se puede instalar RMagick 2.13.1. No puedo encontrar MagickWand.h" ... alguna sugerencia de por qué podría no ser recogido y qué más puedo probar. ¿No está seguro de cómo usar la opción -l?
p101
Hmmmm! Eso debería haber funcionado. Pregunta: Si escribe ./configure --help, ¿enumera alguna opción de configuración para ImageMagick específicamente? Si es así, puede apuntar directamente al directorio de ImageMagick en / usr / local desde el script de configuración.
jkh
Thnx jkh .. Curiosamente no encontré configure en rmagick, así que probablemente te refieres a imagemagick. He creado una nueva pregunta aquí stackoverflow.com/questions/9561386/rmagick-installation . Agradecería si puedes echar un vistazo. ¡Gracias!
p101
1

Es posible que esté instalando ImageMagick versión 7.xx que generará diferentes nombres de carpeta en su usr/lib/local/include/ImageMagick7.x.xcarpeta. P.ej

En la versión que hemos ImageMagick6.xx magick, wandcarpetas, donde en la versión ImageMagick7.xx se denominaron a este llamado MagickCore, MagickWand. Entonces, esta actualización está causando el problema en alguna instalación de gemas como aquí. Que está usando magick/some_header.ho wand/some_header.h(significa que no están actualizados con la nueva versión 7.xx ImageMagick). Es por eso que estamos recibiendo este error:

`` `

checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
 .... 
checking for wand/MagickWand.h... no

`` `

y en el archivo de registro algo como esto:

error: 'MagickCore/method-attribute.h' file not found
#include "MagickCore/method-attribute.h"
         ^

Solución

Instale la versión ImageMagick6.xx en su sistema desde el sitio oficial: https://www.imagemagick.org/download/ e instálela usando estos comandos (después de extraer zip / tar):

./configure
make 
make install

Entonces hazlo

gem install rmagick

Funcionará.

Shekhar Prasad Rajak
fuente
Tuve que correr sudo ldconfig /usr/local/libdespuéssudo make install
sequielo
0
        1) install by installer

http://cactuslab.com/imagemagick/

2) prueba gema instalar rmagick

si busca varita mágica / MagickWand.h ... sin
tipo

mdfind MagickWand.h

encontrar algo como

/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/wand/MagickWand.h

y escriba terminal

C_INCLUDE_PATH=/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/ gem install rmagick

si, después de eso, tiene este error (porque lo tenía) "No se encontró el paquete MagickCore en la ruta de búsqueda de pkg-config".

tipo

mdfind MagickCore.pc

encuentra algo como /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

y finalmente en tipo terminal:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick
Andrés
fuente
1
El comando mdfindes un comando exclusivo de MacOSX, no existe en las variantes de Linux.
slm
como dijo @slm, vuelva a escribir su respuesta para que ayude al control de calidad.
Lorenzo Von Matterhorn
0

Estaba instalando Redmine en Mac OS X mountain lion ...

El instalador falló en rmagick ...

Después de muchos problemas, funcionó instalando "homebrew", pero NO instalando rmagick a través de homebrew. En su lugar, instalé "pkg-config" a través de homebrew, porque rmagick se quejaba de eso.

Los comandos:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
brew install pkg-config
sudo gem install rmagick

Luego, Redmine continuó instalando sin problemas.

Jonny
fuente
0

Antes de instalar rmagic, debe instalar imagic en su sistema, la instalación de imagick varía según su sistema operativo. Luego, debe instalar algunas bibliotecas que admitan internamente ruby ​​para fusionar bibliotecas de procesamiento de imágenes en su sistema. Para instalar esas bibliotecas use el siguiente comando Para linux: sudo apt-get install libmagickwand-dev imagemagick Para Centos: yum install libmagickwand-dev imagemagick

entonces tienes que instalar gem rmagick con el siguiente comando: gem install rmagick Funciona para mí e instalé rmagick con éxito ...

Amardeep Jadhav
fuente
0

¡La respuesta más cercana a @ Irongaze.com! En mi Arch Linux creé estos dos enlaces simbólicos:

$ sudo ln -s /usr/include/ImageMagick-6/wand /usr/include/wand
$ sudo ln -s /usr/include/ImageMagick-6/magick /usr/include/magick

Luego se ejecuta bundlenuevamente y rmagickse corrigió instalado.

Fernando Kosh
fuente