ruby macos imagemagick macos-sierra rmagick

ruby - Instalación de RMagick: no se puede encontrar MagickWand.h



macos imagemagick (20)

Actualizar RMagick e Imagemagick es una experiencia dolorosa. He actualizado la versión de Imagemagick en mi Mac (MacOS El Capitan Versión 10.11.5) con homebrew para un proyecto en Ruby 2.3 a 6.9.5-9

$ convert --version Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09

Ahora, un proyecto anterior en Ruby 1.8.7 se niega a funcionar con el mensaje de error "esta instalación de RMagick se configuró con ImageMagick 6.8.9 pero ImageMagick 6.9.5-9 está en uso". Así desinstalé "rmagick", pero no se puede volver a instalar

$ gem install rmagick -v 2.16.0 Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes checking for Magick-config... yes checking for outdated ImageMagick version (<= 6.4.9)... no checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no checking for Ruby version >= 1.8.5... yes checking for stdint.h... no checking for sys/types.h... no checking for wand/MagickWand.h... no Can''t install RMagick 2.16.0. Can''t find MagickWand.h.

Y si no se puede instalar, no se puede iniciar toda la aplicación. Probé todas las respuestas desde here , y ninguna de ellas funciona en MacOS :-( Reinstalé imagemagick y pkg-config con homebrew, e intenté varias versiones de RMagick sin éxito. 2.16.0 es la última versión de RMagick actualmente.

MagicWand parece usarse en la versión ImageMagick> 6.9, y se puede encontrar en la máquina:

find /usr/local -name MagickWand.h => /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h find /usr/local -name MagickWand.pc => /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc

No funciona incluso si especifico estas rutas durante la instalación de la gema (el mismo error que el anterior) :-(

C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

ACTUALIZAR:

El error solo ocurre para Ruby 1.8.7, es posible instalar RMagick para Ruby 2.0 y Ruby 2.3. Ruby 1.8.7 e ImageMagick 6.9.5 no parecen ser compatibles.

  • Rubí 1.8.7 x
  • Ruby 2.0.0 ✓
  • Ruby 2.3.1 ✓

Algo cambió con ImageMagick 7.0.4-4 para mí. wand/MagickWand.h no se pudo encontrar más:

% brew unlink imagemagick && brew link imagemagick Unlinking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks removed Linking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks created % gem install rmagick Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /Users/holger/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20170116-21103-1aikaka.rb extconf.rb checking for clang... yes checking for Magick-config... no checking for pkg-config... yes checking for outdated ImageMagick version (<= 6.4.9)... no checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no checking for Ruby version >= 1.8.5... yes checking for stdint.h... yes checking for sys/types.h... yes checking for wand/MagickWand.h... no Can''t install RMagick 2.16.0. Can''t find MagickWand.h.

Todavía tenía ImageMagick 6.9.7-3 en mi sistema y cambié de nuevo con

% brew switch imagemagick 6.9.7-3 Cleaning /usr/local/Cellar/imagemagick/6.9.6-6 Cleaning /usr/local/Cellar/imagemagick/6.9.7-0 Cleaning /usr/local/Cellar/imagemagick/6.9.7-1 Cleaning /usr/local/Cellar/imagemagick/6.9.7-3 Cleaning /usr/local/Cellar/imagemagick/7.0.4-4 75 links created for /usr/local/Cellar/imagemagick/6.9.7-3

Luego pude instalar rmagick sin problemas:

% gem install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.16.0 1 gem installed


Algo estaba muy mal en mi sistema, tan mal que estaba completamente jodido, pero finalmente pude instalar RMagick para Ruby 1.8.7 nuevamente después de instalar

La instalación de una nueva versión de Ruby con RVM rvm install 1.8.7 también instaló un nuevo compilador de GCC: eliminó una versión anterior de GCC 4.6 e instaló la versión 4.9 de GCC. Aparentemente, GCC no pudo encontrar los encabezados correctos a pesar de pkg-config.


Así es como lo resolví (después de muchos intentos y fallas) en macOS High Sierra 10.13.3 con Homebrew:

  1. parece que RMagick 2.16.0 no es compatible con la versión más reciente de ImageMagick (Versión 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Desinstalé imagemagick: brew uninstall imagemagick
  3. Luego instalé Imagemagick con esta fórmula: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Si ya ha instalado una versión anterior de Imagemagick, esto debería funcionar: share


En primer lugar, desvincule su imagemagick instalado que no se instaló correctamente en la última mac high sierra mediante.

brew unlink imagemagick

luego instale el último imagemagic6 usando el siguiente comando

brew install imagemagick@6 && brew link imagemagick@6 --force

Luego instale gem rmagick usando el siguiente comando

gem install rmagick

Funcionará perfectamente bien.


Explico completamente el proceso de instalación en ImageMagick install en centos .

de todas formas ...
después de instalar Instale la biblioteca PHP Imagick & ImageMagick-devel & ImageMagick como se muestra a continuación:

# yum install ImageMagick # yum install ImageMagick-devel # pecl install Imagick

ir a / usr / include

cd /usr/include

Importante: copie la carpeta ImageMagick de "/ usr / include" a "/ usr / local / include" para ImageMagick encuentre "MagickWand.h"

Probé este cambio en imagick-3.4.3 (ImageMagick-7) y centos 6.5 y php56 y funciona perfectamente ...

Si ya ha instalado "ImageMagick" varias veces, primero elimínelos y busque las carpetas "ImageMagick" e "imagick" y límpielas todas y continúe el proceso de instalación con este cambio.

Use el siguiente comando para buscar un archivo o carpeta:

find / -name ''ImageMagick*'' find / -name ''imagick*''

y continúa tu instalación
antes de las líneas siguientes, no se olvide: vaya a "php.ini", encuentre "disable_functions" y limpie "proc_open, popen, proc_close" porque imagick necesita estas funciones, después de la instalación completa puede agregar estas funciones a sus "disable_functions" en " archivo php.ini ".

# phpize # ./configure --with-php-config=/usr/local/php56/bin/php-config ...

Buena suerte...


Instale imagemagick versión 6 porque la versión 7 no es compatible:

$ brew install imagemagick@6

No debe vincular: fuerce la versión anterior porque esto cambiará los archivos binarios en su camino y el buen brew doctor se quejará.

Consulte los encabezados y bibliotecas de la versión 6 que se instaló al construir la extensión nativa de la gema:

$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v ''2.16.0''

Nota: funcionó para mí sin indicar la carpeta lib e include porque pkgconfig es responsable de esto.

Nota: 6.9.10-14 es la última versión de imagemagick @ 6, pero no dude en cambiarla si necesita usar una versión diferente


Muchas cosas han cambiado en ImageMagick 7, como esta ruta: include/.../wand y wand/MagickWand.h está cableado en la gema mágica en este momento. En mi caso, no fue posible actualizar la gema ya que el proyecto es bastante antiguo. Así que terminé instalando una versión anterior de ImageMagic.

Puede instalar la última versión de 6.xx:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb

También puede fijarlo para su uso posterior: brew pin imagemagick


No hay necesidad de vincular o desvincular nada, seguir las instrucciones del script de instalación brew ayuda:

brew install imagemagick@6 LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick


Obtuve el mismo error para la construcción de imágenes alpine 3.9. Viene con ImageMagick 7.0.8.38-r0

Para solucionarlo, use alpine 3.5 con ImageMagick 6.9.6.8-r1 :

FROM alpine:3.5

O instale ImageMagick 6.9.6.8-r1 con el repositorio de paquetes para 3.5:

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/alpine/v3.5/main/

github.com/rmagick/rmagick/issues/256 en el repositorio de rmagick con respecto a las compilaciones fallidas para ImageMagick 7.0.x. así que espero que se arregle pronto.


Para la versión de Ubuntu> 12 y que no usa homebrew,

wget http://www.imagemagick.org/download/<required_imagemagick_version> tar -xvf <path_to_your_downloaded_file>.tar.gz

Si obtiene archivos ''7z'' en lugar de archivos ''tar.gz'' en el enlace wget, entonces

7z x <path_to_your_downloaded_file>.7z cd <path_to_your_downloaded_file>/ make ./configure sudo make install sudo ldconfig /usr/local/lib

Luego puede reanudar su paquete para RMagick.


Para resolver el problema en Mac OSX Sierra, High Sierra, El Capitan y Mojave , puede hacer lo siguiente:

brew unlink imagemagick brew install imagemagick@6 && brew link imagemagick@6 --force

imagemagick@6 es keg-only , por lo que deberá forzar la vinculación.


Primero, no necesita desinstalar imagemagick si tiene un 6.x instalado, como se muestra a continuación. Puede ver que el "principal" actual es 7.0.7-8 pero 6.9.1-10 todavía está allí.

$ brew info imagemagick imagemagick: stable 7.0.7-8 (bottled), HEAD Tools and libraries to manipulate images in many formats https://www.imagemagick.org/ /usr/local/Cellar/imagemagick/6.9.1-10 (1,450 files, 17.5MB) Poured from bottle on 2015-07-26 at 09:10:58 /usr/local/Cellar/imagemagick/7.0.6-9 (1,522 files, 22.8MB) Poured from bottle on 2017-08-21 at 14:44:16 From: https://github.com/Homebrew/homebrew-core/blob/master/Formula

Si no tiene una versión anterior de 6.x, instale imagemagick @ 6.

En segundo lugar, no fuerce la imagen de enlace , especialmente no 6. EDITAR: Ver ¹
Debe configurar PKG_CONFIG_PATH además de las banderas --with-opt- *.

Esto funciona para mí en High Sierra con la configuración de preparación antes mencionada en Ruby 1.9.3-p551:

PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.9.1-10/lib/pkgconfig / gem install rmagick -v ''2.16.0'' -- / --with-opt-lib=/usr/local/Cellar/imagemagick/6.9.1-10/lib/ / --with-opt-include=/usr/local/Cellar/imagemagick/6.9.1-10/include/ImageMagick-6/

La construcción de documentos no funciona, pero son intrascendentes.

¹: El edificio funciona, la ruta dylib que RMagick está buscando es incorrecta. Problema planteado # 278 para aclarar si esto se puede solucionar. De lo contrario, es necesario el enlace manual de libMagickWand, etc. Todavía podría ser más seguro vincular manualmente las bibliotecas específicas que un brew link --force aunque es necesario.


RMagick depende de una versión desactualizada de imagemagick, versión 6. (ver más abajo) Homebrew ofrece esto como un paquete de solo barril, que puede instalar con:

export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick

La salida de compilación incluirá una sección de Advertencias (también disponible en brew info imagemagick@6 si borró la salida):

brew install pkg-config brew uninstall imagemagick brew install imagemagick@6 brew link imagemagick@6 --force

En lugar de forzar la vinculación, que tiene el potencial de causar problemas con otro software que admite versiones más nuevas de imagemagick, puede usar las export sugeridas para hacer que la gema RMagick recoja la versión anterior mientras se construye:

$ gem install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.16.0 Parsing documentation for rmagick-2.16.0 Installing ri documentation for rmagick-2.16.0 Done installing documentation for rmagick after 4 seconds 1 gem installed

  1. ¡ github.com/rmagick/rmagick/issues/256 si conoces a Ruby y C!

Siga a continuación y cambie algunas partes según sus necesidades.

==> Caveats imagemagick@6 is keg-only, which means it was not symlinked into /usr/local, because this is an alternate version of another formula. If you need to have imagemagick@6 first in your PATH run: echo ''export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"'' >> ~/.zshrc For compilers to find imagemagick@6 you may need to set: export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" For pkg-config to find imagemagick@6 you may need to set: export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"


Todavía no tengo la reputación de dejar esto como un comentario que mejora otra respuesta, pero la respuesta de @ Evgeniy28 funcionó para mí en Sierra solo después de instalar también pkg-config, que no viene instalado por defecto en una máquina Sierra nueva.

Entonces:

brew unlink imagemagick brew install imagemagick@6 && brew link imagemagick@6 --force export PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.9-24/lib/pkgconfig gem install rmagick -v ''2.15.4''

Éxito:

brew install imagemagick@6



en la versión 7.0.7-1 puede crear un enlace simbólico, pero la compilación fallará más adelante.

cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7 ln -s MagickWand/ wand ln -s MagicCore/ magick


macOs Sierra:

brew uninstall imagemagick brew install imagemagick@6 brew link imagemagick@6 --force


sí, este resuelve mi problema:

MacOS X Sierra:

brew uninstall imagemagick brew install imagemagick@6 brew link imagemagick@6 --force


$ brew remove imagemagick && brew install imagemagick $ brew uninstall pkg-config && brew install pkg-config $ brew unlink pkg-config && brew link pkg-config $ gem install rmagick