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
- una versión anterior de ImageMagick con Homebrew
- una nueva versión de Ruby de 1.8.7
- una nueva versión de GCC
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:
- 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
-
Desinstalé imagemagick:
brew uninstall imagemagick
- Luego instalé Imagemagick con esta fórmula: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
-
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
- ¡ 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
Tuve este mismo problema con
ImageMagick 7.0.4-4
.
La solución adecuada es instalar
imagemagick@6
.
Encontré
https://github.com/Homebrew/homebrew-core/pull/8756
útil si accidentalmente eliminó su
imagemagick@6
o nunca lo instaló en primer lugar.
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