Ich habe ImageMagick auf meinem CentOS kompiliert und RMagick wird nicht installiert

16

Ich habe ImageMagick durch installiert (mit ImageMagick 6.7.3-7)

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

Wenn ich es versuche

gem install imagemagick

Ich bekomme

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

Dies ist trotz der Tatsache, dass MagickWand.h bereits im System ist /usr/include/ImageMagick/wand/MagickWand.h. Die Frage ist also, wie ich den Compiler dazu bringe, dort nachzuschauen.

Ken Li
quelle

Antworten:

26

Hatte das gleiche Problem unter CentOS mit dem neuesten Stand (Stand: Dezember 2011) und behebte es mit:

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

in meiner .bashrc-Datei, um MagickCore.pc abzurufen, und erstellte dann zwei Symlinks:

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

Und voila, der MagickWand.h wurde gefunden, der MagickCore.pc wurde abgeholt ... gem erfolgreich installiert.

Ich stelle mir vor, dass eine andere Lösung darin besteht, die während der ImageMagick-Installation festgelegten Konfigurationsoptionen zu ändern, aber ich bin nicht sysadmin genug, um festzustellen, welche Option und welcher Speicherort für diese Dateien geeignet sind. Nach 45 Minuten googeln, konnte ich nicht herausfinden, wo diese Dateien leben sollen , um automatisch vom gem install make-System abgeholt zu werden.

Prost!

EDIT: 2014-10-01

Wiederholt dies für CentOS 7, und die lnobigen Befehle wurden nicht benötigt. Ich bin jedoch auf ein Problem gestoßen, bei dem ich Folgendes festgestellt habe: "Das Paket MagickCore wurde im Suchpfad pkg-config nicht gefunden." beim Laufen sudo gem install rmagick.

Das Problem war, dass die Umgebung in / etc / sudoers zurückgesetzt wurde. Nachdem sudo visudoich die sudoers-Datei zum Bearbeiten ausgeführt hatte, fügte ich Defaults env_keep += "PKG_CONFIG_PATH"sie dem entsprechenden Abschnitt hinzu, aktualisierte den sicheren Pfad in / usr / local / bin und installierte sie wie ein Zauber.

Irongaze.com
quelle
Ich hatte das gleiche Problem mit RedHat 6 und Ihre Lösung hat für mich funktioniert. Vielen Dank!
Callmeed
Super, das hat sogar wie ein Zauber im Berglöwen gewirkt! Ich muss die gesamte obige Anweisung ausführen, damit rmagick gem installiert wird.
Hendra Uzia
Versuchte dies und bekam "/ usr / local / bin / Magick-config: Zeile 41: pkg-config: Befehl nicht gefunden / usr / local / bin / Magick-config: Zeile 47: pkg-config: Befehl nicht gefunden / usr / local / bin / Magick-config: Zeile 50: pkg-config: Befehl nicht gefunden / usr / local / bin / Magick-config: Zeile 53: pkg-config: Befehl nicht gefunden "
Jonny
13

In ImageMagick wird MagickCore normalerweise hier abgelegt:

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

Wenn deins nicht da ist, kannst du es so finden:

find / -name MagickCore.pc

Sie kennen jetzt Ihren pkgconfig-Pfad:

/usr/local/lib/pkgconfig

Stellen Sie die Umgebung ein, wenn Sie den Edelstein installieren:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
joelparkerhenderson
quelle
Vielen Dank! Arbeitete für mich an einem Bitnami Ubuntu 12.04 Bild.
JD
Vielen Dank! Ähnliches funktionierte hier: find / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux
7

Für CentOS löste ich dieses Problem, indem ich das Paket "ImageMagick-devel" installierte:

yum install ImageMagick-devel

Munish
quelle
1
Dies ist die beste Antwort :)
Kovpack
2

Der Schlüssel befindet sich in der Ausgabe von configure und lautet "Prüfe auf Zauberstab / MagickWand.h". Es ist klar, dass das ImageMagick-Verzeichnis in / usr / include nicht erwartet wird. Dies bedeutet, dass Sie entweder den Inhalt dieses Verzeichnisses um eine Ebene nach oben verschieben müssen oder Sie müssen ImageMagick selbst anders installieren. Das direkte Einfügen von Inhalten in / usr ist im Allgemeinen eine schlechte Idee für alles, was nicht vom System selbst bereitgestellt wird. Wenn Sie stattdessen alle in / usr / local hinzugefügten Elemente trennen und / usr weitgehend in Ruhe lassen, fällt Ihnen das System viel leichter auch zu verwalten, da Sie (lange nachdem Sie dies vergessen haben) herausfinden können, was Sie hinzugefügt haben, im Vergleich zu dem, was mit dem System geliefert wurde.

jkh
quelle
Guter Rat, obwohl Sie die Frage, wie Sie den Compiler zwingen können, in bestimmten Verzeichnissen nach der Header-Datei zu suchen, noch nicht beantwortet haben.
Ken Li
3
Nun, die Compileraufrufe werden alle über den Befehl gem ausgeführt (Sie erzwingen, dass der Compiler mit dem Flag -I nach alternativen Positionen sucht, aber dieser Benutzer verwendet den Compiler nicht direkt) diese Güte geschieht, ohne etwas anderes ändern zu müssen. Die Verwendung der env-Variablen PKG_CONFIG_PATH, um die sich configure ständig bemüht, kann hilfreich sein, wenn eine MagickCore.pc-Datei verfügbar ist. "find / usr -name MagickCore.pc" und dann sehen , ob es existiert, dann das Verzeichnis hinzufügen , es ist mit "setenv PKG_CONFIG_PATH / path / to / wo / finden / gefunden / it"
JKH
Ich habe PKG_CONFIG_PATH auf /Dir/to/where/found/MagickCore.pc aktualisiert und erhalte immer noch die Meldung "RMagick 2.13.1 kann nicht installiert werden. MagickWand.h kann nicht gefunden werden" und was kann ich sonst noch versuchen .. Nicht sicher, wie man die Option -l verwendet?
p101
Hmmmm! Das hätte funktionieren sollen. Frage: Wenn Sie ./configure --help eingeben, werden darin Konfigurationsoptionen speziell für ImageMagick aufgeführt? In diesem Fall können Sie möglicherweise über das Konfigurationsskript direkt auf das ImageMagick-Verzeichnis in / usr / local verweisen.
jkh
Thnx jkh .. Interessanterweise habe ich configure nicht in rmagick gefunden, also meinst du wahrscheinlich imagemagick. Ich habe hier eine neue Frage erstellt stackoverflow.com/questions/9561386/rmagick-installation . Würde mich freuen, wenn Sie einen Blick darauf werfen können. Vielen Dank!
p101
1

Möglicherweise installieren Sie ImageMagick Version 7.xx, wodurch unterschiedliche Ordnernamen in Ihrem usr/lib/local/include/ImageMagick7.x.xOrdner generiert werden . Z.B

In ImageMagick6.xx Version , die wir haben magick, wandbenannte Ordner, in dem in ImageMagick7.xx Version dieses genannt haben MagickCore, MagickWand. Diese Aktualisierung verursacht also das Problem in einigen Gem-Installationen wie hier. Which is using magick/some_header.hor wand/some_header.h(Bedeutet, dass sie nicht mit der neuen ImageMagick-Version 7.xx aktualisiert wurden). Deshalb wird dieser Fehler angezeigt:

`` `

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

`` `

und in der Protokolldatei etwa so:

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

Lösung

Installieren Sie die ImageMagick6.xx-Version von der offiziellen Website in Ihrem System: https://www.imagemagick.org/download/ und installieren Sie sie mit den folgenden Befehlen (nach dem Extrahieren von zip / tar):

./configure
make 
make install

Dann mach

gem install rmagick

Es wird klappen.

Shekhar Prasad Rajak
quelle
Ich musste sudo ldconfig /usr/local/libsudo make install
Sequielo
0
        1) install by installer

http://cactuslab.com/imagemagick/

2) versuche gem install rmagick

Wenn nach Zauberstab / MagickWand.h gesucht wird ... kein
Typ

mdfind MagickWand.h

finde so etwas wie

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

und tippe das Terminal ein

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

if, danach hast du diesen Fehler (weil a es hatte) "Package MagickCore wurde nicht im Suchpfad von pkg-config gefunden."

Art

mdfind MagickCore.pc

finden Sie etwas wie /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

und schließlich im Terminaltyp:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick
Andrew
quelle
1
Der Befehl mdfindist ein reiner MacOSX-Befehl, der in Linux-Varianten nicht vorhanden ist.
Slm
Wie @slm sagte, schreiben Sie Ihre Antwort bitte neu, damit sie der Qualitätssicherung hilft.
Lorenzo Von Matterhorn
0

Ich habe Redmine unter Mac OS X Mountain Lion installiert ...

Das Installationsprogramm ist auf rmagick fehlgeschlagen ...

Nach vielen Problemen funktionierte es durch die Installation von "Homebrew", aber NICHT durch die Installation von rmagick über Homebrew. Stattdessen habe ich "pkg-config" über Homebrew installiert, weil sich rmagick darüber beschwert hat.

Die Befehle:

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

Dann setzte redmine die Installation ohne Probleme fort.

Jonny
quelle
0

Vor der Installation von rmagic sollten Sie imagic auf Ihrem System installieren. Die Installation von imagick hängt von Ihrem Betriebssystem ab. Anschließend müssen Sie einige Bibliotheken installieren, die Ruby intern für das Zusammenführen von Bildverarbeitungsbibliotheken auf Ihrem System unterstützen. Verwenden Sie zum Installieren dieser Bibliotheken den folgenden Befehl für Linux: sudo apt-get install libmagickwand-dev imagemagick Für Centos: yum install libmagickwand-dev imagemagick

dann musst du gem rmagick mit folgendem befehl installieren: gem install rmagick Es funktioniert bei mir und ich habe rmagick erfolgreich installiert ...

Amardeep Jadhav
quelle
0

Am nächsten an @ Irongaze.com antworten! In meinem Arch Linux habe ich diese zwei symbolischen Links erstellt:

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

Läuft dann bundlenochmal und rmagickwurde korrigiert installiert.

Fernando Kosh
quelle