J'ai compilé ImageMagick sur mon CentOS et RMagick ne s'installe pas


16

J'ai installé ImageMagick via (Utilisation d'ImageMagick 6.7.3-7)

./configure --prefix=/usr && make && make install

Quand j'essaye de

gem install imagemagick

Je reçois

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.13.1. Can't find MagickWand.h.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby

Ceci malgré le fait que MagickWand.h est déjà dans le système en /usr/include/ImageMagick/wand/MagickWand.h. La question est donc de savoir comment puis-je obtenir que le compilateur y regarde?

Réponses:


26

A eu le même problème sur CentOS en utilisant la dernière version de tout (en décembre 2011) et l'a corrigé avec:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

dans mon fichier .bashrc pour récupérer MagickCore.pc, puis créé deux liens symboliques:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick

Et voila, le MagickWand.h a été trouvé, le MagickCore.pc a été récupéré ... gem installé avec succès.

J'imagine qu'une autre solution serait de modifier les options de configuration définies lors de l'installation d'ImageMagick, mais je ne suis pas assez administrateur système pour savoir clairement quelle serait la bonne option et l'emplacement pour ces fichiers. Après 45 minutes de recherche, je n'arrivais pas à comprendre où ces fichiers sont censés vivre, pour être automatiquement récupérés par le système d'installation de gem gem.

À votre santé!

EDIT: 2014-10-01

Je viens de recommencer pour CentOS 7 et les lncommandes ci-dessus n'étaient pas nécessaires. Cependant, je suis tombé sur un problème où j'ai obtenu "Le package MagickCore n'a pas été trouvé dans le chemin de recherche pkg-config." en cours d'exécution sudo gem install rmagick.

Le problème était la réinitialisation de l'environnement dans / etc / sudoers. Après avoir exécuté sudo visudopour modifier le fichier sudoers, j'ai ajouté Defaults env_keep += "PKG_CONFIG_PATH"à la section appropriée, mis à jour le chemin d'accès sécurisé pour inclure / usr / local / bin, puis l'installation a fonctionné comme un charme.


J'avais le même problème sur RedHat 6 et votre solution a fonctionné pour moi. Merci beaucoup!
Callmeed

Génial, cela a même fonctionné comme un charme en lion de montagne! J'ai besoin d'exécuter toutes les instructions ci-dessus pour que rmagick gem soit installé.
Hendra Uzia

Je l'ai essayé et j'ai obtenu "/ usr / local / bin / Magick-config: ligne 41: pkg-config: commande introuvable / usr / local / bin / Magick-config: ligne 47: pkg-config: commande introuvable / usr / local / bin / Magick-config: ligne 50: pkg-config: commande introuvable / usr / local / bin / Magick-config: ligne 53: pkg-config: commande introuvable "
Jonny

13

ImageMagick mettra généralement MagickCore ici:

/usr/local/lib/pkgconfig/MagickCore.pc

Si le vôtre n'est pas là, vous pouvez le trouver comme ceci:

find / -name MagickCore.pc

Vous connaissez maintenant votre chemin pkgconfig:

/usr/local/lib/pkgconfig

Définissez l'environnement lorsque vous installez la gemme:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

Merci! A travaillé pour moi sur une image Bitnami Ubuntu 12.04 ..
JD

Merci! similaire ici a fonctionné: trouver / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux

7

Pour CentOS, j'ai résolu ce problème en installant le package "ImageMagick-devel":

yum install ImageMagick-devel


1
c'est la meilleure réponse :)
kovpack

2

La clé se trouve dans la sortie de configuration où il est dit "vérification de baguette / MagickWand.h" - il est clair que le répertoire ImageMagick n'est pas attendu dans / usr / include, ce qui signifie que vous devez soit déplacer le contenu de ce répertoire d'un niveau ou vous besoin d'installer ImageMagick lui-même différemment. Placer des éléments directement dans / usr est généralement une mauvaise idée pour tout ce qui n'est pas fourni par le système lui-même - si vous séparez toutes les choses que vous ajoutez dans / usr / local à la place et laissez / usr largement seul, vous trouverez le système beaucoup plus facile à administrer également, car vous pourrez (longtemps après avoir oublié cela) comprendre ce que vous avez ajouté par rapport à ce qui est venu avec le système.


Bon conseil, bien que vous n'ayez toujours pas répondu à la question de savoir comment forcer le compilateur à rechercher dans certains répertoires le fichier d'en-tête.
Ken Li

3
Eh bien, les invocations du compilateur se produisent toutes via la commande gem (vous forcez le compilateur à rechercher dans d'autres emplacements avec l'indicateur -I, mais cet utilisateur n'utilise pas directement le compilateur) et il est préférable de configurer les choses avec la commande configure telle que cette bonté se produit sans avoir à changer quoi que ce soit d'autre. L'utilisation de la variable env PKG_CONFIG_PATH qui configure continue à hurler peut faire l'affaire si un fichier MagickCore.pc est disponible. "find / usr -name MagickCore.pc" puis voyez s'il existe, puis ajoutez le répertoire dans lequel il se trouve avec "setenv PKG_CONFIG_PATH / path / to / where / find / found / it"
jkh

J'ai mis à jour PKG_CONFIG_PATH vers /Dir/to/where/found/MagickCore.pc et je me retrouve toujours avec "Impossible d'installer RMagick 2.13.1. Impossible de trouver MagickWand.h" ... des suggestions pourquoi il pourrait ne pas être récupéré et quoi d'autre je peux essayer .. Vous ne savez pas comment utiliser l'option -l?
p101

Hmmmm! Cela aurait dû fonctionner. Question: Si vous saisissez ./configure --help, cela répertorie-t-il spécifiquement les options de configuration pour ImageMagick? Si c'est le cas, vous pourrez peut-être pointer directement vers le répertoire ImageMagick dans / usr / local à partir du script de configuration.
jkh

Thnx jkh .. Fait intéressant, je n'ai pas trouvé de configuration dans rmagick, donc vous voulez probablement dire imagemagick. J'ai créé une nouvelle question ici stackoverflow.com/questions/9561386/rmagick-installation . J'apprécierais si vous pouviez y jeter un œil. Merci!
p101


1

Il se peut que vous installiez ImageMagick version 7.xx qui générera différents noms de dossier dans votre usr/lib/local/include/ImageMagick7.x.xdossier. Par exemple

Dans la version ImageMagick6.xx que nous avons magick, du wandnom des dossiers, où dans la version ImageMagick7.xx ont nommé ce MagickCore, MagickWand. Cette mise à jour est donc à l'origine du problème dans certaines installations de gemmes comme ici. Qui utilise magick/some_header.houwand/some_header.h (signifie qu'ils ne sont pas mis à jour avec la nouvelle version 7.xx ImageMagick) .C'est pourquoi nous obtenons cette erreur:

`` ''

checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
 .... 
checking for wand/MagickWand.h... no

`` ''

et dans le fichier journal quelque chose comme ceci:

error: 'MagickCore/method-attribute.h' file not found
#include "MagickCore/method-attribute.h"
         ^

Solution

Installez la version ImageMagick6.xx dans votre système à partir du site officiel: https://www.imagemagick.org/download/ et installez-la en utilisant ces commandes (après avoir extrait zip / tar):

./configure
make 
make install

Alors fais

gem install rmagick

Ça va marcher.


Je devais faire un sudo ldconfig /usr/local/libaftersudo make install
sequielo

0
        1) install by installer

http://cactuslab.com/imagemagick/

2) Essayez Gem Installer rmagick

si vous recherchez baguette / MagickWand.h ... pas de
type

mdfind MagickWand.h

trouver quelque chose comme

/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/wand/MagickWand.h

et tapez dans le terminal

C_INCLUDE_PATH=/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/ gem install rmagick

si, après cela, vous avez cette erreur (car elle l'avait) "Le package MagickCore n'a pas été trouvé dans le chemin de recherche pkg-config."

type

mdfind MagickCore.pc

trouver quelque chose comme /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

et enfin en type terminal:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick

1
La commande mdfindest une commande MacOSX uniquement, elle n'existe pas sur les variantes Linux.
slm

comme l'a dit @slm, veuillez réécrire votre réponse afin qu'elle aide le contrôle qualité.
Lorenzo Von Matterhorn

0

J'installais Redmine sous Mac OS X Mountain Lion ...

Le programme d'installation a échoué sur rmagick ...

Après beaucoup de problèmes, cela a fonctionné en installant "homebrew", mais PAS en installant rmagick via homebrew. Au lieu de cela, j'ai installé "pkg-config" via homebrew, car rmagick s'en plaignait.

Les commandes:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
brew install pkg-config
sudo gem install rmagick

Redmine a ensuite continué l'installation sans aucun problème.



0

Avant d'installer rmagic, vous devez installer imagic sur votre système, l'installation d'imagick varie en fonction de votre système d'exploitation, puis vous devez installer certaines bibliothèques qui prennent en charge en interne ruby ​​pour fusionner les bibliothèques de traitement d'image sur votre système. Pour installer ces bibliothèques, utilisez la commande suivante Pour linux: sudo apt-get install libmagickwand-dev imagemagick Pour Centos: yum install libmagickwand-dev imagemagick

alors vous devez installer gem rmagick avec la commande suivante: gem install rmagick Cela fonctionne pour moi et j'ai installé rmagick avec succès ...


0

La réponse la plus proche de @ Irongaze.com! Dans mon Arch Linux, j'ai créé ces deux liens symboliques:

$ sudo ln -s /usr/include/ImageMagick-6/wand /usr/include/wand
$ sudo ln -s /usr/include/ImageMagick-6/magick /usr/include/magick

Puis s'exécute à bundlenouveau et a rmagickété corrigé installé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.