ImageMagick von Brew installieren und seinen Symlink reparieren

Angenommen, Sie haben Imagemagick von installiert

brew install imagemagick

aber es kommt nicht in Ihren PATH. Zum Beispiel laufe ich erfolglos

compare

da imagemagick nicht in PATH: -bash: compare: command not found.

Der Befehl ls -l /usr/local/bin/comparegibt

ls: /usr/local/bin/compare: No such file or directory

Mein .bash_profile

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

# http://apple.stackexchange.com/a/53058/15504
export PATH=/usr/bin:/usr/local/bin:/opt/local/sbin:$PATH

Echo $PATHgibt

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

was da ok zu sein scheint /usr/local/bin/.

ImageMagick in meinem System - Antworten auf die Antwort von 4ae1e1

Der Befehl brew --prefixgibt /usr/localso ok.

Der Befehl brew info imagemagickgibt

imagemagick: stable 6.9.0-3 (bottled), HEAD
http://www.imagemagick.org
/usr/local/Cellar/imagemagick/6.9.0-3 (1440 files, 22M)
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/imagemagick.rb
==> Dependencies
Build: xz ✔, pkg-config ✔
Required: libtool ✔, xz ✔
Recommended: jpeg ✔, libpng ✔, freetype ✔
Optional: fontconfig ✔, libtiff ✔, little-cms ✘, little-cms2 ✘, libwmf ✘, librsvg ✘, liblqr ✘, openexr ✘, ghostscript ✘, webp ✘, fftw ✘
==> Options
--enable-hdri
        Compile with HDRI support
--with-fftw
        Compile with FFTW support
--with-fontconfig
        Build with fontconfig support
--with-ghostscript
        Build with ghostscript support
--with-jp2
        Compile with Jpeg2000 support
--with-liblqr
        Build with liblqr support
--with-librsvg
        Build with librsvg support
--with-libtiff
        Build with libtiff support
--with-libwmf
        Build with libwmf support
--with-little-cms
        Build with little-cms support
--with-little-cms2
        Build with little-cms2 support
--with-openexr
        Build with openexr support
--with-perl
        enable build/install of PerlMagick
--with-quantum-depth-16
        Compile with a quantum depth of 16 bit
--with-quantum-depth-32
        Compile with a quantum depth of 32 bit
--with-quantum-depth-8
        Compile with a quantum depth of 8 bit
--with-webp
        Build with webp support
--with-x11
        Build with x11 support
--without-freetype
        Build without freetype support
--without-jpeg
        Build without jpeg support
--without-libpng
        Build without libpng support
--without-magick-plus-plus
        disable build/install of Magick++
--HEAD
        Install HEAD version

das scheint ok zu sein.

Ich führe den Befehl aus brew link imagemagickund erhalte

Linking /usr/local/Cellar/imagemagick/6.9.0-3... 
Error: Could not symlink bin/convert
Target /usr/local/bin/convert
already exists. You may want to remove it:
  rm '/usr/local/bin/convert'

To force the link and overwrite all conflicting files:
  brew link --overwrite imagemagick

To list all files that would be deleted:
  brew link --overwrite --dry-run imagemagick

Das scheint seltsam zu sein. Wie können Sie dieses Problem lösen?

Ich führe den Befehl aus brew reinstall imagemagickund erhalte

==> Reinstalling imagemagick
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/imagemagick
Already downloaded: /Library/Caches/Homebrew/imagemagick-6.9.0-3.yosemite.bottle.tar.gz
==> Pouring imagemagick-6.9.0-3.yosemite.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/convert
Target /usr/local/bin/convert
already exists. You may want to remove it:
  rm '/usr/local/bin/convert'

To force the link and overwrite all conflicting files:
  brew link --overwrite imagemagick

To list all files that would be deleted:
  brew link --overwrite --dry-run imagemagick

Possible conflicting files are:
/usr/local/bin/convert
/usr/local/share/man/man1/convert.1
==> Summary
🍺  /usr/local/Cellar/imagemagick/6.9.0-3: 1440 files, 22M

also etwas falsch in Symlinking.

Wie können Sie den Fehler über den Symlink beheben?

Was hast du versucht? Wo bist du hängen geblieben? Wissen Sie, wie man die Befehlszeile verwendet? Haben Sie die Handbuchseiten von ImageMagick gelesen? Sie haben uns in der Frage nicht viel gegeben, mit dem wir arbeiten können, daher ist es schwer zu wissen, wie wir Ihnen helfen können. Wir erwarten, dass Sie sich ernsthaft bemühen, bevor Sie hier fragen, und uns in der Frage zeigen, was Sie versucht haben und was passiert ist.
Grundsätzlich führen Sie es einfach vom Terminal aus mit den gewünschten Optionen aus. Aus Ihrer Frage ist unklar, ob das Ausführen vom Terminal aus fehlschlägt, ob Sie nicht wissen, wie Sie damit eine bestimmte Aufgabe ausführen, oder ob Sie ein anderes Problem haben. Bitte klären Sie dies, indem Sie Ihre Frage bearbeiten. Sie wird dann automatisch in die Warteschlange zum erneuten Öffnen gestellt.
was kommt type comparezurück und ls -l /usr/local/bin/compare?
Ahh, und welche Fehlermeldung bekommst du am Laufen compare?
Bitte versuchen Sie es so type -a compare, ls -l /usr/local/bin/comparewie Patrix es vorgeschlagen hat.
Okay, dann compareist es einfach nicht da.
Ich werde Ihnen in Kürze eine Liste mit Dingen geben, die Sie ausprobieren können.
vielleicht ist es jetzt ein bisschen nutzlos, aber diese einfache Lösung hat bei mir funktioniert: stackoverflow.com/questions/13998161/…
In meinem Fall war es viel einfacher, es mit "port" zu installieren

Antworten (2)

Eine Liste der Dinge, die Sie ausprobieren sollten, in der richtigen Reihenfolge (ich schreibe eine Antwort anstelle eines Kommentars zur besseren Formatierung). Führen hash -rSie nach jedem Schritt aus (vorausgesetzt, Sie befinden sich in bash; tun Sie dies rehashstattdessen für zsh; oder Sie können jederzeit eine neue Shell öffnen).

  1. Führen Sie brew --prefixes aus und prüfen Sie, ob die Ausgabe /usr/local. Wenn nicht, brewist Ihr nicht installiert /usr/local! Füge $(brew --prefix)/bindir hinzu $PATH.

  2. Führen brew info imagemagickSie es aus und vergewissern Sie sich, dass es tatsächlich installiert ist. Vielleicht ist bei der Installation ein Fehler aufgetreten und es wurde einfach nicht erfolgreich installiert.

  3. Run brew link imagemagickto symbollink to /usr/local/bin; vielleicht wurden die ausführbaren Dateien nicht korrekt symbolisiert (aus irgendeinem Grund);

  4. Zur Neuinstallation brew reinstall imagemagickausführen.

  5. Wenn es immer noch nicht funktioniert, zeigen Sie uns die Ausgabe von brew list imagemagickund wir werden sehen, was falsch ist.

Du hast recht! Beim Symlinking ist ein Fehler aufgetreten. Siehe mein Update.
Ich habe rm '/usr/local/bin/convert' und rm '/usr/local/share/man/man1/convert.1' gemacht ?
@Masi Das ist nicht das Beste, was man tun kann. convertist ein ImageMagick-Befehl, also würde ich sagen, dass es sicher ist, einfach zu tun brew link --overwrite imagemagick. Wenn Sie übermäßig vorsichtig sein wollen, können Sie sich brew link --overwrite --dry-run imagemagickzuerst die Liste der überschriebenen Dateien ansehen, aber ich würde sagen, das ist nicht notwendig.
Übrigens, vielleicht haben Sie eine Nicht-Homebrew-Software installiert, die eine convertBinärdatei in bereitgestellt hat /usr/local/bin? Könnten Sie convert --versionsich vergewissern, dass es sich tatsächlich um ImageMagick handelt convert?
Die convert --version war der Befehl von ImageMagick. Ich habe die beiden Dateien entfernt und das imagemagic nun erfolgreich neu installiert. Ich habe jetzt Vergleich in meiner Befehlszeile. Danke für deine Antworten!
Super, freut mich, dass es geholfen hat.
Was ist der Zweck des Befehls hash -r ? Ich bekomme nichts, wenn ich es laufen lasse. Ich neige immer dazu, nach jeder Installation einen Reset auszuführen.
@Masi hash -rrehashed die Liste der Befehle, die der Shell bekannt sind. Es hilft bei der automatischen Vervollständigung und so, also warum nicht. resethat wenig mit Ihrer Shell-Umgebung zu tun, es setzt nur das Terminal zurück und hilft nur bei Druckproblemen.
Gibt es eine Möglichkeit, alles zu verknüpfen, außer welche Konflikte? Ich habe einen Konflikt compare, den ich behalten möchte, aber ich brauche den von ImageMagick convert.
@raxacoricofallapatorius Nein, und da dieser Anwendungsfall aus der Sicht von Brew eindeutig nicht tragbar ist, glaube ich nicht, dass wir eine Option dafür hinzufügen werden, selbst wenn Sie es anfordern. Sie können Ihre jedoch jederzeit an eine compareandere Stelle kopieren / verschieben brew link imagemagickund dann Ihren compareRücken dorthin verschieben, wo er sich befindet. Beachten Sie, dass imagemagick (von mir, wie es passiert) ziemlich häufig aktualisiert wird, daher ist es wahrscheinlich bequemer, wenn Sie es an compareanderer Stelle vor dem bin-Verzeichnis von Homebrew installieren, sagen wir ~/bin.
@4ae1e1: Oder lassen Sie einfach den Brew-Link und erstellen Sie dann einen anderen Link (sagen Sie xyzcomparezum anderen compare. Einfach.

jjrrs Vorschlag in den Kommentaren, wo Sie auch den Anweisungen folgen müssen

brew doctor