it-swarm.com.de

RMagick-Installation: Kann MagickWand.h nicht finden

Das Aktualisieren von RMagick und Imagemagick ist eine schmerzhafte Erfahrung. Ich habe die Imagemagick-Version auf meinem Mac (MacOS El Capitan Version 10.11.5) mit Homebrew für ein Projekt in Ruby 2.3 auf 6.9.5-9 aktualisiert. 

$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09

Nun weigert sich ein älteres Projekt in Ruby 1.8.7, mit der Fehlermeldung "Diese Installation von RMagick wurde mit ImageMagick 6.8.9 konfiguriert, aber ImageMagick 6.9.5-9 wird verwendet". Also habe ich "rmagick" deinstalliert, kann aber nicht erneut installiert werden

$ 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. 

Wenn es nicht installiert werden kann, kann die gesamte Anwendung nicht gestartet werden. Ich habe alle Antworten aus hier ausprobiert, und keines davon funktioniert unter MacOS :-( Ich habe imagemagick und pkg-config mit Homebrew neu installiert und verschiedene Versionen von RMagick ohne Erfolg ausprobiert. 2.16.0 ist die neueste Version von RMagick derzeit. 

MagicWand scheint in ImageMagick Version> 6.9 verwendet zu werden und kann auf dem Computer gefunden werden: 

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

Es funktioniert nicht, auch wenn ich diese Pfade während der Installation des Gem spezifiziere (gleicher Fehler wie oben) :-(

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

AKTUALISIEREN:

Der Fehler tritt nur für Ruby 1.8.7 auf. Es ist möglich, RMagick für Ruby 2.0 und Ruby 2.3 zu installieren. Ruby 1.8.7 und ImageMagick 6.9.5 scheinen nicht kompatibel zu sein.

  • Rubin 1,8,7 x
  • Ruby 2.0.0 ✓ 
  • Ruby 2.3.1 ✓ 
138
0x4a6f4672

Etwas war auf meinem System schwerwiegend falsch, so sehr, dass es völlig aufgeregt war, aber schließlich konnte ich RMagick für Ruby 1.8.7 nach der Installation erneut installieren 

Bei der Installation einer neuen Ruby-Version mit RVM rvm install 1.8.7 wurde auch ein neuer GCC-Compiler installiert: Es wurde eine ältere GCC-Version 4.6 entfernt und die GCC-Version 4.9 installiert. Anscheinend konnte GCC trotz pkg-config die richtigen Header nicht finden.

0
0x4a6f4672

Um das Problem in Mac OSX Sierra, High Sierra, El Capitan und Mojave zu lösen, haben Sie folgende Möglichkeiten:

brew unlink imagemagick
brew install [email protected] && brew link [email protected] --force

[email protected] ist keg-only, daher müssen Sie die Verknüpfung erzwingen. 

395

Ich hatte das gleiche Problem mit ImageMagick 7.0.4-4. Die richtige Lösung ist die Installation von [email protected]. Ich fand https://github.com/Homebrew/homebrew-core/pull/8756 nützlich, wenn Sie versehentlich Ihren [email protected] gelöscht oder überhaupt nicht installiert hatten.

53
Raymond Cox

macOs Sierra:

brew uninstall imagemagick
brew install [email protected]
brew link [email protected] --force
28
Evgeniy28

Zuerst muss Ihr installiertes Imagemagick auflösen, das im neuesten Mac High Sierra nicht richtig installiert wurde.

brew unlink imagemagick

installieren Sie anschließend den neuesten Imagemagic6-Befehl mit dem folgenden Befehl

brew install [email protected] && brew link [email protected] --force

Dann installieren Sie gem rmagick mit dem folgenden Befehl

gem install rmagick 

Es wird perfekt funktionieren.

20

In ImageMagick 7 haben sich viele Dinge wie dieser Pfad geändert: include/.../wand, und wand/MagickWand.h ist im Moment in dem rmagic gem verdrahtet. In meinem Fall war es nicht möglich, den Edelstein zu aktualisieren, da das Projekt ziemlich alt ist. Also habe ich eine ältere Version von ImageMagic installiert.

Sie können die neueste Version von 6.x.x installieren:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb

Sie können es auch für spätere Zwecke anheften: brew pin imagemagick

14

yah dieses löst mein Problem:

MacOS X Sierra:

brew uninstall imagemagick
brew install [email protected]
brew link [email protected] --force
14

Mit ImageMagick 7.0.4-4 hat sich für mich etwas geändert. wand/MagickWand.h konnte nicht mehr gefunden werden:

% 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.

Ich hatte noch ImageMagick 6.9.7-3 auf meinem System und wechselte wieder mit

% 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

Danach konnte ich rmagick ohne Probleme installieren:

% gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed
11
Holger Frohloff
$ 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
5
Yury Lebedev

Bitte folgen Sie unten und ändern Sie einen Teil entsprechend Ihren Bedürfnissen. 

brew unlink imagemagick
brew install [email protected] && brew link [email protected] --force
export PKG_CONFIG_PATH=/usr/local/Cellar/[email protected]/6.9.9-24/lib/pkgconfig
gem install rmagick -v '2.15.4'
5
Lalit Kumar

Ich habe noch nicht den Ruf, dies als Kommentar zu hinterlassen, um eine weitere Antwort zu verbessern, aber die Antwort von @ Evgeniy28 funktionierte für Sierra nur, nachdem ich auch pkg-config installiert hatte, das nicht standardmäßig auf einem neuen Sierra-Computer installiert ist.

So:

brew install pkg-config
brew uninstall imagemagick
brew install [email protected]
brew link [email protected] --force

Erfolg:

$ 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
4
Andrew Brown

So habe ich (nach vielen Versuchen und Misserfolgen) in macOS High Sierra 10.13.3 mit Homebrew gelöst: 

  1. es scheint, dass RMagick 2.16.0 nicht mit der neuesten Version von ImageMagick (Version 7) kompatibel ist: http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Ich habe imagemagick deinstalliert: brew uninstall imagemagick 
  3. Dann habe ich Imagemagick mit dieser Formel installiert: https://Gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Wenn Sie bereits eine alte Version von Imagemagick installiert haben, sollte dies funktionieren: https://stackoverflow.com/a/41674363

3
iGian

Installieren Sie imagemagick Version 6, da Version 7 nicht kompatibel ist:

$ brew install [email protected]

Sollte nicht link die ältere Version erzwingen , da dies die Binärdateien in Ihrem Pfad ändert und der gute brew doctor sich beschwert.

Verweisen Sie auf die Header und Bibliotheken von Version 6, die beim Erstellen der ursprünglichen Erweiterung des Gem installiert wurden:

$ PKG_CONFIG_PATH=/usr/local/Cellar/[email protected]/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'

Hinweis: Für mich gearbeitet, ohne den Ordner lib und include anzugeben, da pkgconfig dafür verantwortlich ist.

Hinweis: 6.9.10-14 ist die neueste Version von imagemagick @ 6. Sie können diese jedoch jederzeit ändern, wenn Sie eine andere Version verwenden möchten.

2
wlads

Es ist nicht notwendig, irgendetwas zu verknüpfen oder die Verknüpfung zu lösen. Befolgen Sie die Anweisungen des Brew-Installationsskripts.

brew install [email protected]
LDFLAGS="-L/usr/local/opt/[email protected]/lib" CPPFLAGS="-I/usr/local/opt/[email protected]/include" PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig" gem install rmagick
1
januszm

in Version 7.0.7-1 können Sie eine symbolische Verknüpfung erstellen, die Kompilierung schlägt jedoch fehl. 

cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagicCore/ magick
1
territorial

Habe den gleichen Fehler für Alpine 3.9 Image Build. Es kommt mit ImageMagick 7.0.8.38-r0

Um dies zu beheben, verwenden Sie entweder Alpine 3.5 mit ImageMagick 6.9.6.8-r1 :

FROM Alpine:3.5

Oder installieren Sie ImageMagick 6.9.6.8-r1 mit Paket-Repository für 3.5:

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/Alpine/v3.5/main/

Es gibt ein offenes Problem in rmagick repo bezüglich fehlgeschlagener Builds für ImageMagick 7.0.x. also hoffentlich wird es bald behoben.

Ref https://stackoverflow.com/a/55971997/4950680

0
Martin Zinovsky

Für Ubuntu-Version> 12 und ohne Homebrew,

wget http://www.imagemagick.org/download/<required_imagemagick_version>
tar -xvf <path_to_your_downloaded_file>.tar.gz

Wenn Sie im Wget-Link "7z" -Dateien statt "tar.gz" -Dateien erhalten, dann

7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
Sudo make install
Sudo ldconfig /usr/local/lib

Dann können Sie Ihren Bundler für RMagick fortsetzen.

0

RMagick hängt von einer veralteten Version von Imagemagick Version 6 ab.(siehe unten) Homebrew bietet dies als Nur-Keg-Paket an, das Sie mit installieren können:

brew install [email protected]

Die Build-Ausgabe enthält einen Abschnitt Caveats (auch verfügbar unter brew info [email protected], wenn Sie die Ausgabe gelöscht haben):

==> Caveats
[email protected] is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have [email protected] first in your PATH run:
  echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc

For compilers to find [email protected] you may need to set:
  export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
  export CPPFLAGS="-I/usr/local/opt/[email protected]/include"

For pkg-config to find [email protected] you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"

Anstatt eine Zwangsverknüpfung durchzuführen, die möglicherweise Probleme mit anderer Software verursacht, die tut neuere Versionen von Imagemagick unterstützt, können Sie die vorgeschlagenen exports verwenden, um den RMagick-Gem zur Übernahme der alten Version zu veranlassen:

export LDFLAGS="-L/usr/local/opt/[email protected]/lib"
export CPPFLAGS="-I/usr/local/opt/[email protected]/include"
export PKG_CONFIG_PATH="/usr/local/opt/[email protected]/lib/pkgconfig"
gem install rmagick

  1. Go Hilfe zum Upgrade-Aufwand beitragen wenn Sie Ruby und C kennen!
0
Phil Calvin

Ich erkläre den Installationsprozess in ImageMagick in Centos ..__ vollständig.

sowieso ...
after install Installieren Sie die Bibliothek von Imagick & ImageMagick-devel & ImageMagick PHP wie folgt:

# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick

gehe nach/usr/include

cd /usr/include

Wichtig: Kopieren Sie den ImageMagick-Ordner von "/ usr/include" nach "/ usr/local/include" für ImageMagick, um "MagickWand.h" zu finden.

Ich habe diese Änderung auf imagick-3.4.3 (ImageMagick-7) und centos 6.5 und php56 getestet und funktioniert einwandfrei ...

Wenn Sie "ImageMagick" bereits mehrmals installiert haben, entfernen Sie zunächst alle und suchen Sie nach den Ordnern "ImageMagick" und "imagick", bereinigen Sie alle und setzen Sie die Installation mit dieser Änderung fort.

Verwenden Sie den folgenden Befehl, um eine Datei oder einen Ordner zu suchen:

find / -name 'ImageMagick*'
find / -name 'imagick*'

und setzen Sie Ihre Installation fort
Vor den folgenden Zeilen nicht vergessen: Gehe zu "php.ini" und suche nach "disable_functions" und clean "proc_open, popen, proc_close", weil imagick diese Funktionen benötigt Dies funktioniert auf Ihre "disable_functions" in der "php.ini" -Datei.

# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config 
...

Viel Glück...

0
Ferhad Konar