Was macht "Brew Link"?

77

Wenn ich renne, brew doctorbekomme ich die allgemeine Warnung:

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
# [...]

Was bedeutet es, wenn die Fässer nicht verbunden sind? Und was brew linkgenau macht das?

mbaytas
quelle

Antworten:

38

brew linkErstellt Symlinks zu Installationen, in denen Sie manuell ausgeführt haben Cellar. Auf diese Weise haben Sie die Flexibilität, Dinge selbst zu installieren, diese jedoch weiterhin als Abhängigkeiten in homebrewFormeln zu verwenden.

Weitere Informationen finden Sie in den FAQ .

Sie sollten diese Anweisungen befolgen und brew linkdie darin aufgeführten Einträge ausführen .

Leeor
quelle
14
Ich war nach einer Antwort auf niedrigerer Ebene: Wo befinden sich diese Symlinks? Was / wo ist der Keller? Wenn Sie mit diesen Informationen klarstellen, möchte ich diese Antwort akzeptieren.
mbaytas
1
Die Symlinks können lsals normale Links angesehen werden. ls -lh /usr/local/bin/python=> /usr/local/bin/python -> ../Cellar/python/3.6.4_3/bin/python. Für eine vollständige Referenz aller Symlinks, die Homebrew verwaltet, bin ich auch neugierig. Im Keller befinden sich einfach alle Homebrew-Pakete. Es ist unter /usr/local/Cellar.
Andrea Bergonzo
24

Mit Homebrew können mehrere Versionen einer Formel installiert werden. Zum Beispiel gibt es Formeln genannt nodeund node@10und ähnlich.

$ brew info node@10
...
==> Caveats
node@10 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

Wenn ich beides habe nodeund node@10installiert habe, wo nodeist bei v11. Ich kann später entscheiden, die frühere Version zu aktivieren mit brew link:

$ brew unlink node

$ brew link node@10

$ cd /urs/local/bin
$ ls -l node
lrwxr-xr-x  1 user  admin  34 12 Dec 20:07 node -> ../Cellar/node@10/10.14.1/bin/node

Hier nodeverweist der Symlink auf eine frühere Version ( keg-only), die in installiert ist Cellar.

Themenfeld
quelle
brew link --force --overwrite node@10
Zhang Buzz