Installation de RMagick: Vous ne trouvez pas MagickWand.h

Mettre à jour RMagick et Imagemagick est une expérience douloureuse. J’ai mis à jour la version d’Imagemagick sur mon Mac (MacOS El Capitan Version 10.11.5) avec un homebrew pour un projet en Ruby 2.3 à 6.9.5-9

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

Maintenant, un ancien projet dans Ruby 1.8.7 refuse de fonctionner avec le message d’erreur “cette installation de RMagick était configurée avec ImageMagick 6.8.9 mais ImageMagick 6.9.5-9 est en cours d’utilisation”. J’ai donc désinstallé “rmagick“, mais il ne peut plus être installé

 $ 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.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. 

Et s’il ne peut pas être installé, l’application entière ne peut pas être démarrée. J’ai essayé toutes les réponses ici , et aucune ne fonctionne sur MacOS 🙁 J’ai réinstallé imagemagick et pkg-config avec homebrew, et essayé différentes versions de RMagick sans succès. 2.16.0 est la dernière version de RMagick actuellement.

MagicWand semble être utilisé dans la version ImageMagick> 6.9, et on peut le trouver sur la machine:

 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 

Cela ne fonctionne pas même si je spécifie ces chemins lors de l’installation de la gemme (même erreur que ci-dessus) 🙁

 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 

METTRE À JOUR:

L’erreur se produit uniquement pour Ruby 1.8.7, il est possible d’installer RMagick pour Ruby 2.0 et Ruby 2.3. Ruby 1.8.7 et ImageMagick 6.9.5 ne semblent pas être compatibles.

  • Ruby 1.8.7 x
  • Ruby 2.0.0 ✓
  • Ruby 2.3.1 ✓

Dans Mac OSX Sierra (et High Sierra), pour résoudre le problème, je devais procéder comme suit:

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

imagemagick@6 est en mode imagemagick@6 keg-only , vous devrez donc forcer la liaison.

J’ai eu ce même problème avec ImageMagick 7.0.4-4 . Le correctif approprié est d’installer imagemagick@6 . J’ai trouvé https://github.com/Homebrew/homebrew-core/pull/8756 utile si vous supprimiez accidentellement votre imagemagick@6 ou si vous ne l’aviez jamais installé.

MacOs Sierra:

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

Beaucoup de choses ont changé dans ImageMagick 7 comme ce chemin: include/.../wand et wand/MagickWand.h est actuellement câblé dans la gem rmagic. Dans mon cas, il n’était pas possible de mettre à jour le bijou car le projet est plutôt ancien. J’ai donc fini par installer une ancienne version d’ImageMagic.

Vous pouvez installer la dernière version à partir de 6.xx:

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

Vous pouvez également l’épingler pour une utilisation ultérieure:

Tout d’abord, dissociez votre imagemagick installé qui n’était pas correctement installé dans la dernière version de mac high sierra en utilisant.

 brew unlink imagemagick 

puis installez le dernier imagemagic6 en utilisant la commande ci-dessous

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

Ensuite, installez gem rmagick en utilisant la commande ci-dessous

 gem install rmagick 

Cela fonctionnera parfaitement bien.

Quelque chose a changé avec ImageMagick 7.0.4-4 pour moi. wand/MagickWand.h ne pouvait plus être trouvé:

 % 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. 

J’ai toujours eu ImageMagick 6.9.7-3 sur mon système et je suis revenu avec

 % 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 

Ensuite, je pourrais installer rmagick sans problème:

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

Veuillez suivre ci-dessous et changer certaines parties selon vos besoins.

 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' 
 $ 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 

Je n’ai pas encore la réputation de laisser ceci comme un commentaire améliorant une autre réponse, mais la réponse de @ Evgeniy28 n’a fonctionné pour moi sur Sierra qu’après avoir également installé pkg-config, qui n’est pas installé par défaut sur une nouvelle machine Sierra.

Alors:

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

Succès:

 $ 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 

Voici comment j’ai résolu (après beaucoup d’essais et d’échec) sur macOS High Sierra 10.13.3 avec Homebrew:

  1. il semble que RMagick 2.16.0 n’est pas compatible avec la nouvelle version d’ImageMagick (version 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. J’ai désinstallé imagemagick: brew uninstall imagemagick
  3. Ensuite, j’ai installé Imagemagick avec cette formule: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Si vous avez déjà installé une ancienne version Imagemagick, cela devrait fonctionner: https://stackoverflow.com/a/41674363

yah celui-ci résout mon problème:

MacOs Sierra:

armser désinstaller imagemagick brew installer imagemagick @ 6 brew link imagemagick @ 6 –force

dans la version 7.0.7-1, vous pouvez créer un lien symbolique, mais la compilation échouera.

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

Quelque chose n’allait vraiment pas sur mon système, à tel point qu’il était complètement prêt, mais j’ai finalement pu réinstaller RMagick pour Ruby 1.8.7 après mon installation.

  • une ancienne version d’ImageMagick avec Homebrew
  • une nouvelle version Ruby de 1.8.7
  • une nouvelle version de GCC

L’installation d’une nouvelle version de Ruby avec RVM rvm install 1.8.7 également installé un nouveau compilateur GCC: il a supprimé une version antérieure de GCC 4.6 et installé la version 4.9 de GCC. Apparemment, GCC n’était pas capable de trouver les bons en-têtes malgré pkg-config.

Tout d’abord, vous n’avez pas besoin de désinstaller imagemagick si un logiciel 6.x est installé, comme illustré ci-dessous. Vous pouvez voir que la “main” actuelle est 7.0.7-8 mais 6.9.1-10 est toujours là.

 $ 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 vous ne possédez pas d’ancienne version 6.x, installez imagemagick @ 6.

Deuxièmement, ne forcez pas le lien imagemagick, surtout pas 6. EDIT: Voir ¹
Vous devez définir PKG_CONFIG_PATH en plus des indicateurs –with-opt- *.

Cela fonctionne pour moi sur High Sierra avec la configuration de armsage susmentionnée sur 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/ 

Construire des documents ri échoue, mais ceux-ci sont sans importance.

¹: La construction fonctionne, mais le chemin Dylib recherché par RMagick est faux. Question soulevée n ° 278 pour clarifier si cela peut être corrigé. Sinon, le symlinking manuel de libMagickWand, etc. est nécessaire. Peut-être encore plus sûr de lier manuellement les bibliothèques spécifiques à un brew link --force cependant.

J’explique complètement le processus d’installation dans ImageMagick install dans centos .

en tous cas …
après l’installation Installez Imagick & ImageMagick-devel & ImageMagick PHP library comme ci-dessous:

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

aller à / usr / include

 cd /usr/include 

Important: copiez le dossier ImageMagick de “/ usr / include” vers “/ usr / local / include” pour trouver ImageMagick “MagickWand.h”

J’ai testé ce changement sur imagick-3.4.3 (ImageMagick-7) et centos 6.5 et php56 et fonctionne parfaitement …

Si vous avez déjà installé “ImageMagick” plusieurs fois, supprimez-les d’abord et trouvez les dossiers “ImageMagick” et “imagick” et nettoyez-les tous et poursuivez le processus d’installation avec cette modification.

Utilisez la commande suivante pour rechercher un fichier ou un dossier:

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

et continuez votre installation
avant que les lignes ci-dessous n’oublient: allez dans “php.ini” trouvez “disable_functions” et nettoyez “proc_open, popen, proc_close” parce que imagick a besoin de ces fonctions, après l’installation complète vous pouvez append cette fonction à php.ini “fichier.

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

Bonne chance…

Pour la version Ubuntu> 12 et sans homebrew,

 wget http://www.imagemagick.org/download/ tar -xvf .tar.gz 

Si vous obtenez des fichiers ‘7z’ au lieu des fichiers ‘tar.gz’ dans le lien wget, alors

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

Ensuite, vous pouvez reprendre votre bundler pour RMagick.