Wie kann ich verhindern, dass Homebrew ein Duplikat der Software installiert, die ich auf andere Weise installiert habe?

12

Ich verwende Homebrew gerne zur Installation von Unix-Software auf meinem Mac und weiß zu schätzen, dass nicht versucht wird, mehrere Kopien von Dingen wie Python zu installieren. Es gibt jedoch einige Pakete, die ich bereits manuell installiert habe, und ich möchte nicht, dass Homebrew eigene Kopien davon installiert.

In meiner aktuellen Situation habe ich OCaml mit dem Standardinstallationsprogramm installiert. Jetzt möchte ich Coq über Homebrew installieren. Ich sehe darüber, brew deps coqdass es von OCaml abhängt. Ich weiß, dass ich sagen kann, dass ich die Installation von OCaml dieses Mal über überspringen soll brew install --ignore-dependencies coq. Ich möchte dies jedoch lieber nicht jedes Mal tun müssen, wenn ich ein Homebrew-Paket installiere, für das OCaml erforderlich ist.

Wie kann ich Homebrew dazu bringen, so zu tun, als hätte es Software installiert, die ich auf andere Weise installiert habe, damit nicht versucht wird, eine doppelte Kopie zu installieren?

Jay Lieske
quelle

Antworten:

14

Nehmen Sie den Pfad, den Sie --prefix=während Ihres ./configureAufenthalts verwendet haben, und verknüpfen Sie ihn mit dem Cellar/Verzeichnis, das Homebrew verwendet. Homebrew sieht diese Verzeichnisse und die Abhängigkeiten als erfüllt an (es sei denn, Sie müssen sie mit oder ohne bestimmte Funktionen kompilieren lassen, damit die Homebrew-Formeln korrekt kompiliert werden). Wenn Ihre manuell kompilierten Deps nicht korrekt kompiliert werden, werden Sie wahrscheinlich Fehler von Homebrew erhalten.

ln -s /path/from/prefix/ /usr/local/Cellar/path/from/prefix

(Beachten Sie den abschließenden Schrägstrich im ersten Pfad und den fehlenden abschließenden Schrägstrich im zweiten Pfad. OS X kann beim Erstellen von Sym-Links bei diesen Schrägstrichen wählerisch sein.)

Dies ist der falsche Weg, Sie sollten es nur verwenden --ignore-dependencies coq- dafür ist es da.

Bryson
quelle
1
Schöne Antwort auf die Frage, aber auch ein Hinweis auf die empfohlene Methode zur Unterdrückung bestimmter Abhängigkeiten.
bmike
Dies ist eine sehr gute Lösung für mich, nachdem ich Stunden damit verbracht habe, Abhängigkeiten für Octave zu installieren, einschließlich des elussiven gcc (eine Alternative zu clang // LLVM) ...
nyxee