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.
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.
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.
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.
macOs Sierra:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
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.
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
yah celui-ci résout mon problème:
MacOS X Sierra:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
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
$ 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
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'
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
Voici comment j'ai résolu (après de nombreux essais et échec) sur macOS High Sierra 10.13.3 avec Homebrew:
brew uninstall imagemagick
gem install rmagick
Si vous avez déjà installé une ancienne version de Imagemagick, cela devrait fonctionner: https://stackoverflow.com/a/41674363
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
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
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
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.
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.
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
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...