web-dev-qa-db-fra.com

Installation de RMagick: impossible de trouver 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 l'homebrew pour un projet de Ruby 2.3 à 6.9.5-9 

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

Désormais, un ancien projet de Ruby 1.8.7 refuse de travailler avec le message d'erreur "cette installation de RMagick a été 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 pas être ré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.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. 

Et si elle ne peut pas être installée, l’ensemble de l’application ne peut pas être démarré. J'ai essayé toutes les réponses de ici , et aucune d'entre elles ne fonctionne sur MacOS :-( J'ai réinstallé imagemagick et pkg-config avec homebrew, et j'ai essayé diverses versions de RMagick sans succès. 2.16.0 est la dernière version de RMagick actuellement. 

MagicWand semble être utilisé dans la version> 6.9 d’ImageMagick et peut être trouvé 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 ne se produit que 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.

  • Rubis 1.8.7 x
  • Ruby 2.0.0 ✓ 
  • Ruby 2.3.1 ✓ 
138
0x4a6f4672

Quelque chose n'allait vraiment pas sur mon système, si mal qu'il était complètement foutu, mais je pouvais enfin installer RMagick pour Ruby 1.8.7 après l'avoir installé. 

L'installation d'une nouvelle version de Ruby avec RVM rvm install 1.8.7 a également installé un nouveau compilateur GCC: il a supprimé une version plus ancienne de GCC 4.6 et installé la version 4.9 de GCC. Apparemment, GCC n’a pas pu trouver les bons entêtes malgré pkg-config.

0
0x4a6f4672

Pour résoudre le problème dans Mac OSX Sierra, High Sierra, El Capitan et Mojave, vous pouvez procéder comme suit:

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

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

395
K M Rakibul Islam

J'ai eu ce même problème avec ImageMagick 7.0.4-4. Le correctif approprié consiste à installer imagemagick@6. J'ai trouvé https://github.com/Homebrew/homebrew-core/pull/8756 utile si vous avez supprimé votre imagemagick@6 par inadvertance ou ne l'avez jamais fait installer.

53
Raymond Cox

macOs Sierra:

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

Tout d’abord Dissociez votre imagemagick installé qui n’a pas été installé correctement dans le dernier 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

Puis installez gem rmagick en utilisant la commande ci-dessous

gem install rmagick 

Cela fonctionnera parfaitement bien.

20
Ali Hassan Mirza

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

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

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

Vous pouvez également l'épingler pour une utilisation ultérieure: brew pin imagemagick

14
Péter Tóth - Toma

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

MacOS X Sierra:

brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
14
Rolando Alvarado

Quelque chose a changé avec ImageMagick 7.0.4-4 pour moi. wand/MagickWand.h est introuvable:

% 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'avais toujours 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, j'ai pu 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
11
Holger Frohloff
$ 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
5
Yury Lebedev

Veuillez suivre ci-dessous et modifier certaines parties en fonction de 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'
5
Lalit Kumar

Je n'ai pas encore la réputation de laisser ceci comme commentaire améliorant une autre réponse, mais la réponse de @ Evgeniy28 n'a fonctionné pour moi sur Sierra qu'après l'installation de 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
4
Andrew Brown

Voici comment j'ai résolu (après de nombreux essais et échec) sur macOS High Sierra 10.13.3 avec Homebrew: 

  1. il semble que RMagick 2.16.0 ne soit pas compatible avec la dernière version de 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. J'ai ensuite installé Imagemagick avec cette formule: https://Gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

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

3
iGian

Installez imagemagick version 6 car la version 7 n’est pas compatible:

$ brew install imagemagick@6

Ne devrait pas link - forcer l’ancienne version car cela changera les fichiers binaires de votre chemin et le bon brew doctor se plaindra.

Référencez les en-têtes et les bibliothèques de la version 6 installés lors de la construction de l'extension native de la gem:

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

Note: J'ai travaillé pour moi sans indiquer les dossiers lib et include car pkgconfig en est responsable.

Note: 6.9.10-14 est la dernière version de imagemagick @ 6, mais n'hésitez pas à la changer si vous avez besoin d'une version différente

2
wlads

Il n'est pas nécessaire de lier ou de dissocier quoi que ce soit, il est utile de suivre les instructions du script d'installation de brassage:

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
1
januszm

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

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

Même erreur pour la construction de l'image Alpine 3.9. Il est livré avec ImageMagick 7.0.8.38-r0

Pour résoudre ce problème, vous devez utiliser Alpine 3.5 avec ImageMagick 6.9.6.8-r1 :

FROM Alpine:3.5

Ou installez ImageMagick 6.9.6.8-r1 avec le référentiel de packages pour 3.5:

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

Il y a un problème en suspens dans le référentiel rmagick concernant les générations ayant échoué pour ImageMagick 7.0.x. alors espérons que cela sera bientôt résolu.

Réf https://stackoverflow.com/a/55971997/4950680

0
Martin Zinovsky

Pour Ubuntu version> 12 et n'utilisant pas l'homebrew,

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

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

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

Ensuite, vous pouvez reprendre votre bundler pour RMagick.

0
Rajarshi Ganguly

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

en tous cas ...
après l'installation Installez les bibliothèques Imagick & ImageMagick-devel & ImageMagick PHP comme ci-dessous:

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

allez à/usr/include

cd /usr/include

Important: copiez le dossier ImageMagick de "/ usr/include" vers "/ usr/local/include" pour ImageMagick, recherchez "MagickWand.h".

J'ai testé ce changement sur imagick-3.4.3 (ImageMagick-7), Centos 6.5 et php56 et fonctionne parfaitement ...

Si vous avez déjà installé plusieurs fois "ImageMagick", supprimez-les tous d'abord, recherchez les dossiers "ImageMagick" et "imagick", nettoyez-les 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
N'oubliez pas les lignes .__ avant ci-dessous: cela fonctionne sur votre "disable_functions" sur le fichier "php.ini".

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

Bonne chance...

0
Ferhad Konar