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 aktualisiert6.9.5-9
$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09
Jetzt 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" zu arbeiten. Daher habe ich "rmagick" deinstalliert, aber es kann 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.
Und wenn es nicht installiert werden kann, kann nicht die gesamte Anwendung gestartet werden. Ich habe alle Antworten von hier aus ausprobiert , und keine 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 derzeit die neueste Version von RMagick .
MagicWand scheint in ImageMagick Version> 6.9 verwendet zu werden und befindet sich auf dem Computer:
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 Gem-Installation 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.
- Ruby 1.8.7 x
- Ruby 2.0.0 ✓
- Ruby 2.3.1 ✓
quelle
Antworten:
Um das Problem in Mac OSX Sierra, High Sierra, El Capitan, Mojave und Catalina zu lösen , haben Sie folgende Möglichkeiten:
imagemagick@6
istkeg-only
, so müssen Sie die Verknüpfung erzwingen.quelle
brew unlink imagemagick
vor dem Link manuell die Verknüpfung aufheben - aber es hat funktioniert. Vielen Dank.Ich hatte das gleiche Problem mit ImageMagick 7.0.4-4 . Die richtige Lösung ist die Installation
imagemagick@6
. Ich fand https://github.com/Homebrew/homebrew-core/pull/8756 nützlich, wenn Sie Ihre versehentlich gelöscht habenimagemagick@6
oder sie überhaupt nicht installiert hatten.quelle
brew install imagemagick@6 && brew link imagemagick@6 --force
löste es für michbrew install --force imagemagick@6 && brew link imagemagick@6 --force
Using 6.9.8 Q16 from /usr/local/Cellar/imagemagick@6/6.9.8-3. checking for outdated ImageMagick version (<= 6.4.9)... yes 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.15.0. Can't find MagickWand.h.
macOs Sierra:
quelle
Entfernen Sie zunächst die Verknüpfung Ihres installierten Imagemagicks, der in der neuesten Mac High Sierra nicht ordnungsgemäß installiert wurde.
Installieren Sie dann das neueste imagemagic6 mit dem folgenden Befehl
Installieren Sie dann gem rmagick mit dem folgenden Befehl
Es wird einwandfrei funktionieren.
quelle
yah dieser löst mein Problem:
MacOS X Sierra:
quelle
Viele Dinge haben sich in ImageMagick 7 wie folgt geändert :
include/.../wand
, undwand/MagickWand.h
sind im Moment im rmagischen Juwel fest verdrahtet. In meinem Fall war es nicht möglich, das Juwel 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.xx installieren:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb
Sie können es auch für eine spätere Verwendung anheften:
brew pin imagemagick
quelle
Mit ImageMagick 7.0.4-4 hat sich für mich etwas geändert .
wand/MagickWand.h
konnte nicht mehr gefunden werden:Ich hatte immer noch ImageMagick 6.9.7-3 auf meinem System und wechselte zurück mit
Danach konnte ich
rmagick
ohne Probleme installieren :quelle
RMagick hängt von einer veralteten Version von imagemagick, Version 6, ab. (Siehe unten) Homebrew bietet dies als reines Fasspaket an, mit dem Sie Folgendes installieren können:
Die Build-Ausgabe enthält einen Abschnitt mit Einschränkungen (auch verfügbar,
brew info imagemagick@6
wenn Sie die Ausgabe gelöscht haben):Anstatt das Verknüpfen zu erzwingen, was möglicherweise Probleme mit anderer Software verursacht, die neuere Versionen von imagemagick unterstützt, können Sie die vorgeschlagenen
export
s verwenden, damit das RMagick-Juwel die alte Version aufnimmt, während es erstellt wird:quelle
quelle
pkg-config
und sie funktionierte.Ich habe noch nicht den Ruf, dies als Kommentar zu hinterlassen, der eine andere Antwort verbessert, aber die Antwort von @ Evgeniy28 funktionierte für mich in Sierra erst, nachdem auch pkg-config installiert wurde, das standardmäßig nicht auf einem neuen Sierra-Computer installiert ist.
So:
Erfolg:
quelle
Bitte folgen Sie unten und ändern Sie einige Teile entsprechend Ihren Anforderungen.
quelle
Installieren Sie imagemagick Version 6, da Version 7 nicht kompatibel ist:
$ brew install imagemagick@6
Sollte nicht verlinken - erzwinge die ältere Version, da dies die Binärdateien in deinem Pfad ändert und die Guten
brew doctor
sich beschweren.Verweisen Sie auf die Header und Bibliotheken aus Version 6, die beim Erstellen der nativen Erweiterung des Gems installiert wurden:
$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'
Hinweis: Hat für mich ohne Angabe der lib und des Include-Ordners funktioniert, da die pkgconfig dafür verantwortlich ist.
Hinweis: 6.9.10-14 ist die neueste Version von imagemagick @ 6, Sie können sie jedoch jederzeit ändern, wenn Sie eine andere Version verwenden müssen
quelle
So habe ich (nach vielen Versuchen und Misserfolgen ) unter macOS High Sierra 10.13.3 mit Homebrew gelöst:
brew uninstall imagemagick
gem install rmagick
Wenn Sie bereits eine alte Version von Imagemagick installiert haben, sollte dies funktionieren: https://stackoverflow.com/a/41674363
quelle
In Version 7.0.7-1 können Sie einen symbolischen Link erstellen, dessen Kompilierung jedoch fehlschlägt.
quelle
Es ist nicht erforderlich, etwas zu verknüpfen oder die Verknüpfung aufzuheben. Befolgen Sie dazu die Anweisungen im Brew-Installationsskript:
quelle
Ich habe den gleichen Fehler beim Erstellen des Alpine 3.9-Images erhalten. 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 :
Oder installieren Sie ImageMagick 6.9.6.8-r1 mit Paket-Repository für 3.5:
In rmagick repo gibt es ein offenes Problem bezüglich fehlgeschlagener Builds für ImageMagick 7.0.x. also hoffentlich wird es bald behoben.
quelle
Auf meinem System stimmte etwas nicht, so schlimm, dass es vollständig funktioniert hatte, aber ich konnte RMagick für Ruby 1.8.7 nach der Installation endlich wieder installieren
Bei der Installation einer neuen Ruby-Version mit RVM wurde
rvm install 1.8.7
auch ein neuer GCC-Compiler installiert: Eine ältere GCC-Version 4.6 wurde entfernt und die GCC-Version 4.9 installiert. Anscheinend konnte GCC trotz pkg-config nicht die richtigen Header finden.quelle
Ich erkläre den Installationsprozess in ImageMagick vollständig in Centos .
sowieso ...
nach der Installation Installieren Sie die PHP-Bibliothek von Imagick & ImageMagick-devel & ImageMagick wie folgt:
gehe zu / usr / include
Wichtig: Kopieren Sie den ImageMagick-Ordner von "/ usr / include" nach "/ usr / local / include", damit ImageMagick "MagickWand.h" findet.
Ich habe diese Änderung auf imagick-3.4.3 (ImageMagick-7) und centos 6.5 und php56 getestet und funktioniert perfekt ...
Wenn Sie "ImageMagick" bereits mehrmals installiert haben, entfernen Sie zuerst alle Ordner und suchen Sie die Ordner "ImageMagick" und "imagick". Bereinigen Sie alle Ordner und setzen Sie den Installationsvorgang mit dieser Änderung fort.
Verwenden Sie den folgenden Befehl, um eine Datei oder einen Ordner zu finden:
und setzen Sie Ihre Installation fort,
bevor die folgenden Zeilen nicht vergessen: Gehen Sie zu "php.ini", suchen Sie "disable_functions" und bereinigen Sie "proc_open, popen, proc_close", da imagick diese Funktionen benötigt. Nach Abschluss der Installation können Sie diese Funktionen zu Ihrer hinzufügen. " disable_functions "in der Datei" php.ini ".
Viel Glück...
quelle
Für Ubuntu Version> 12 und ohne Homebrew,
Wenn Sie im wget-Link '7z'-Dateien anstelle von' tar.gz'-Dateien erhalten, dann
Dann können Sie Ihren Bundler für RMagick fortsetzen.
quelle
Erstens müssen Sie imagemagick nicht deinstallieren, wenn 6.x installiert ist, wie unten gezeigt. Sie können sehen, dass das aktuelle "Haupt"
7.0.7-8
aber6.9.1-10
immer noch da ist.Wenn Sie nicht eine alte Version 6.x haben, dann imagemagick @ 6 installieren.
Zweitens erzwingen Sie kein Link- Imagemagick, insbesondere nicht 6. BEARBEITEN: Siehe ¹
Sie müssen PKG_CONFIG_PATH zusätzlich zu den Flags --with-opt- * setzen.
Dies funktioniert für mich in High Sierra mit dem oben genannten Brau-Setup auf Ruby 1.9.3-p551:
Das Erstellen von RI-Dokumenten schlägt fehl, diese sind jedoch nicht relevant.
¹: Bauarbeiten, der von RMagick gesuchte Dylib-Pfad ist jedoch falsch. Problem Nr. 278 wurde ausgelöst , um zu klären, ob dies behoben werden kann. Andernfalls ist eine manuelle Verknüpfung von libMagickWand usw. erforderlich. Es könnte immer noch sicherer sein, die spezifischen Bibliotheken manuell zu verknüpfen, als dies der Fall
brew link --force
wäre.quelle