Installation RMagick: impossible de trouver MagickWand.h
mise à Jour RMagick et Imagemagick est un douloureux expierence. J'ai mis à jour la version Imagemagick sur mon mac (MacOS El Capitan Version 10.11.5) avec homebrew pour un projet dans Ruby 2.3 à 6.9.5-9
$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09
maintenant un projet plus ancien dans 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 utilisé". Donc Je désinstallé "rmagick", mais il ne peut pas être installé à nouveau
$ 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'application entière ne peut pas être démarrée. J'ai essayé toutes les réponses de ici , et aucun d'eux ne fonctionne sur MacOS :-( j'ai réinstallé imagemagick et pkg-config avec homebrew, et 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 ImageMagick > 6.9, et il 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 gem (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
mise à 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 compatibles.
- Ruby 1.8.7 x
- Ruby 2.0.0 ✓
- Ruby 2.3.1 ✓
17 réponses
sous Mac OSX Sierra (et High Sierra), pour résoudre le problème, j'ai eu à faire ce qui suit:
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
imagemagick@6
est keg-only
, donc vous devrez forcer le lien.
j'ai eu ce même problème avec ImageMagick 7.0.4-4 . La solution appropriée est d'installer imagemagick@6
. J'ai trouvé https://github.com/Homebrew/homebrew-core/pull/8756 utile si vous avez accidentellement supprimé votre imagemagick@6
ou ne l'avez jamais fait installer en premier lieu.
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 câblé dans le gemmagic en ce moment. Dans mon cas, il n'a pas été possible de mettre à jour le gem car le projet est assez 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 épingler pour usege plus tard:
brew pin imagemagick
tout D'abord débloquer votre imagemagick installé qui n'a pas été correctement installé dans la dernière mac high sierra en utilisant.
brew unlink imagemagick
puis installer la dernière imagemagic6 en utilisant la commande ci-dessous
brew install imagemagick@6 && brew link imagemagick@6 --force
puis installer gem rmagick en utilisant la commande ci-dessous
gem install rmagick
ça marchera parfaitement.
quelque chose a changé avec ImageMagick 7.0.4-4 pour moi. wand/MagickWand.h
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 encore ImageMagick 6.9.7-3 sur mon système et j'ai changé 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
après je pouvais 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
s'il vous plaît suivre ci-dessous et changer une partie en fonction de votre besoin.
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'
yah celui-ci résout mon problème:
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
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 a fonctionné pour moi sur Sierra seulement après avoir également installé pkg-config, qui ne vient pas installé par défaut sur une nouvelle machine Sierra.
:
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 une Tire à domicile:
- il semble que RMagick 2.16.0 ne soit pas compatible avec la dernière version D'ImageMagick (Version 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
- j'ai désinstallé imagemagick:
brew uninstall imagemagick
- puis J'ai installé Imagemagick avec cette formule: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
-
gem install rmagick
si vous avez déjà installé une ancienne version D'Imagemagick, cela devrait fonctionner: https://stackoverflow.com/a/41674363
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 pas sur mon système, tellement mal qu'il était complètement fichu, mais j'ai finalement pu installer RMagick pour Ruby 1.8.7 à nouveau après que j'ai installé
- an ancienne version D'ImageMagick à la maison
- une nouvelle version Ruby de 1.8.7
- une nouvelle version de GCC
l'installation d'une nouvelle version Ruby avec RVM rvm install 1.8.7
également installé un nouveau compilateur GCC: il a enlevé une ancienne version de GCC 4.6 et installé GCC version 4.9. Apparemment, GCC n'a pas pu trouver les en-têtes appropriés malgré pkg-config.
j'explique en détail le processus d'installation dans ImageMagick install dans centos .
de toute façon ...
après l'installation Installez Imagick & ImageMagick-devel & ImageMagick la bibliothèque PHP comme ci-dessous:
# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick
allez dans /usr/include
cd /usr/include
Important: copier le dossier ImageMagick de "/ usr / include "à"/usr/local / include " pour ImageMagick trouve 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, retirez-les d'abord et trouvez les dossiers" ImageMagick " & "imagick" et nettoyez-les tous et continuez le processus d'installation avec ce changement.
utilisez la commande suivante pour trouver un fichier ou un dossier:
find / -name 'ImageMagick*'
find / -name 'imagick*'
et continuez votre installation
avant sous les lignes n'oubliez pas:
aller à "php.ini" trouver "disable_functions" et propre "proc_open,popen,proc_close" parce que faire imagick besoin de ces fonctions,
après l'installation complète, vous pouvez ajouter ces fonctions à vos "disable_functions" sur "php.ini fichier".
# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config
...
bonne chance...
Pour la version Ubuntu > 12 et n'utilisant pas de 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 'tar.les fichiers gz dans le lien wget, puis
7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
sudo make install
sudo ldconfig /usr/local/lib
alors vous pouvez reprendre votre bundler pour RMagick.
il n'est pas nécessaire de lier ou de déverrouiller quoi que ce soit, en suivant les instructions du script d'installation de brew helps:
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
tout d'abord, vous n'avez pas besoin de désinstaller imagemagick si elle a un 6.x installé, comme montré ci-dessous. Vous pouvez voir la "main" 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 n'avez pas de vieux 6.version x, puis installent imagemagick@6.
le Second, ne pas forcer sur le lien imagemagick, surtout pas 6. modifier: Voir 1
Vous devez définir PKG_CONFIG_PATH en plus des options --with-opt -*.
cela fonctionne pour moi sur la haute Sierra avec la préparation de brassage 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/
Les Docs du bâtiment ri ne marchent pas, mais ils sont sans conséquence.
"151950920 ¹ 1: Les travaux de construction, le chemin dylib RMagick cherche est faux cependant. Soulevé question # 278 pour clarifier si cela peut être corrigé. Dans le cas contraire, la symlinking manuelle libMagickWand etc est nécessaire. Pourrait encore être plus sûr de relier manuellement les bibliothèques spécifiques qu'unbrew link --force
cependant.