"Rmagick" Gem Installationsproblem

68

Ich habe ein Problem beim Versuch, "rmagick" gem auf centos zu installieren. Es folgt die Ausgabe, die ich habe. Kann mir bitte jemand helfen, herauszufinden, welches Paket mir fehlt ? Ich habe alle erwähnten einen anderen Stack-Overflow-Thread installiert : RMagick-Installationsfehler

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

        /usr/local/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.2. 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/local/bin/ruby


Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out

Nach folgenden Vorschlägen erhalte ich jetzt diese Ausgabe:

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

        /usr/local/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
checking for stdint.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/local/bin/ruby
/usr/local/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:931:in `block in have_header'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /usr/local/lib/ruby/1.9.1/mkmf.rb:930:in `have_header'
    from extconf.rb:194:in `<main>'


Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/rmagick-2.13.2/ext/RMagick/gem_make.out

Ausgabe von mkmf.log:

checking for HDRI disabled version of ImageMagick... -------------------- yes

--------------------

"gcc -o conftest -I/usr/local/include/ruby-1.9.1/x86_64-linux -I/usr/local/include/ruby-1.9.1/ruby/backward -I/usr/local/include/ruby-1.9.1 -I.  -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/ImageMagick-6    -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/include/ImageMagick-6   conftest.c  -L. -L/usr/local/lib -Wl,-R/usr/local/lib  -L/usr/lib -lMagickCore-6.Q16      -L/usr/lib -lMagickCore-6.Q16    -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -lruby-static  -lpthread -lrt -ldl -lcrypt -lm   -lc"
/usr/bin/ld: skipping incompatible /usr/lib/libMagickCore-6.Q16.so when searching for -lMagickCore-6.Q16
/usr/bin/ld: skipping incompatible /usr/lib/libMagickCore-6.Q16.so when searching for -lMagickCore-6.Q16
/usr/bin/ld: skipping incompatible /usr/lib/libMagickCore-6.Q16.so when searching for -lMagickCore-6.Q16
/usr/bin/ld: cannot find -lMagickCore-6.Q16
collect2: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"

Die Ausgabe von gem_make.out entspricht der obigen Terminalausgabe.

Rana
quelle

Antworten:

138

Versuchen Sie die Installation

  sudo apt-get install libmagickwand-dev imagemagick
Sachin Singh
quelle
9
sieht vielversprechend aus, aber nur auf Ubuntu
Sławosz
3
Arbeitete am Ubuntu 12.04
Benjamin Crouzier
11
@ Sławosz hier sind Sie:yum install ImageMagick-devel ImageMagick
Denys Vitali
1
Arbeitete unter CentOS 7 mit yum. Vielen Dank.
Faliorn
1
Für MacOS siehe meine Antwort unten.
Fadils
17

Die Fehlermeldung lautet:

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

Anscheinend fehlt Ihnen überhaupt kein Paket. Sie müssen nur angeben, pkg-configwo sich die MagickCore.pcDatei zum Erstellen der Erweiterung befindet. Wenn Sie das Paket ImageMagick-develmithilfe yumder Datei installiert haben, sollte es sich im Verzeichnis /usr/lib/pkgconfigoder /usr/lib64/pkgconfig(abhängig von Ihrer Architektur) befinden. Überprüfen Sie mit diesem Befehl (von jetzt an gehe ich davon aus, dass Sie sich auf einem amd64-Computer befinden, falls dies nicht der Fall ist, ersetzen Sie ihn lib64durch lib):

$ find /usr/lib64/pkgconfig -name MagickCore.pc

Wenn die Datei vorhanden ist, müssen Sie sie nur rmagickmit folgendem Befehl installieren :

$ PKG_CONFIG_PATH='/usr/lib64/pkgconfig' gem install rmagick
toro2k
quelle
Vielen Dank. Ihr Vorschlag hat funktioniert. Ich erhalte jedoch jetzt eine andere Ausgabe (bitte überprüfen Sie die bearbeiteten Fragendetails). Ich bin nicht sicher, was ich mit dem "Makefile konnte aus irgendeinem Grund nicht erstellt werden, wahrscheinlich mangels notwendiger Bibliotheken und / oder Header. Überprüfen Sie die Datei mkmf.log auf weitere Details." . Muss ich auch die in der Ausgabe genannten Entwicklungsversionen installieren?
Rana
Hallo, ja, ich habe gerade bestätigt, dass diese glibc-headers lib installiert ist. irgendeinen anderen Hinweis?
Rana
Die Ausgabe der Datei mkmf.log wurde hinzugefügt. Bitte überprüfen Sie, ob Sie einen Hinweis finden können. Ich bin neu in diesen und auch in Linux, daher sind viele Ausgaben für mich weniger aussagekräftig :(. Wenn Sie mir einen beschreibenden Link zur Installation von RMagick geben können, dem ich von Anfang an folgen kann, ist dies von großer Bedeutung Hilfe auch.
Rana
Nein, ich habe kein Paket aus dem Quellcode kompiliert. Ich habe die gepackten Bibliotheken immer entweder mit "yum install" oder "gem install" installiert. Die Antwort auf diese Frage: stackoverflow.com/questions/14355798/… , denkst du, dass dies auch für mich ein ähnlicher Fall sein kann? inkompatible Version von rmagick mit imagemagick?
Rana
1
Unter Ubuntu 16.04 ist dies jetzt PATH = "/ usr / lib / x86_64-linux-gnu / ImageMagick-6.8.9 / bin-Q16: $ PATH" PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig gem install rmagick -v '2.13.2'
werkshy
7

Für Mac mit Brew einfach ..

brew install imagemagick

Dann gem install imagemagickwird reibungslos funktionieren.

Fadils
quelle
7

Das Problem ist, wie der Fehler es ausdrückt,

Das Paket MagickCore wurde im Suchpfad pkg-config nicht gefunden

Dort wird auch die Lösung vorgeschlagen:

Fügen Sie das Verzeichnis mit MagickCore.pcder PKG_CONFIG_PATHUmgebungsvariablen hinzu

Damit,

  1. Suchen Sie den Speicherort von MagickCore.pc :

    sudo find / -name MagickCore.pc
    
  2. Wenn es nicht gefunden wird, ist ImageMagick wahrscheinlich nicht auf Ihrem System installiert - dann installieren Sie es (Google, wie es geht, da es vom Betriebssystem abhängt)

  3. Speichern Sie es wie folgt in der ENV-Variable (stellen Sie sicher, dass Sie den in Schritt 1 gefundenen Pfad eingeben):

    PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
    
  4. Versuchen Sie erneut, RMagick zu installieren

Sergey Pedan
quelle
2
Das directory containingbedeutet, dass Sie den Dateinamen entfernen müssen, damit es funktioniert. Also PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig.
sekrett
Bestimmt! Vielen Dank, @sekrett
Sergey Pedan
3

Es sieht nicht so aus, als würden Ihnen Pakete fehlen. Die Fehlermeldung ist wichtig:

Vielleicht sollten Sie das Verzeichnis mit "MagickCore.pc" zur Umgebungsvariablen PKG_CONFIG_PATH hinzufügen

Einige der Antworten auf dieses Superuser-Duplikat geben gute Ratschläge.

Darshan Rivka Whittle
quelle
1

Auf debian (instabil) waren die richtigen Pakete, die zur Behebung dieses Fehlers benötigt wurden libmagickcore-6.q16-dev, imagemagickundlibmagickwand-6-headers

Ich habe sie mit apt-file search MagickCore.pcund gefundenapt-file search MagickWand.h

Spikolynn
quelle
0

Für Windows-Benutzer, die darauf stoßen und zu 100% davon überzeugt sind, dass sie das Devkit installiert haben:

Bei der Installation wird diese Eingabeaufforderung angezeigt Geben Sie hier die Bildbeschreibung ein

1 zu wählen ist nicht genug. Drücken Sie einfach die Eingabetaste (1 & 3) und das Devkit wird ordnungsgemäß installiert.

adnan_e
quelle