431 Stimmen

Homebrew: Konnte nicht verknüpfen, /usr/local/bin ist nicht beschreibbar

Bei der Installation von tig zeigt HomeBrew die folgenden Probleme bei der Installation einer Abhängigkeit an:

Fehler: Der Schritt `brew link` wurde nicht erfolgreich abgeschlossen
Die Formel wurde erstellt, aber nicht in /usr/local verlinkt
Konnte bin/a2x nicht verlinken
/usr/local/bin ist nicht beschreibbar.

Du kannst es erneut versuchen mit:
  brew link asciidoc

691voto

Jikku Jose Punkte 17794

Nach Alex's Antwort konnte ich dieses Problem lösen; es scheint, dass es sich hierbei um ein Problem handelt, das nicht spezifisch für die installierten Pakete ist, sondern um die Berechtigungen der homebrew Ordner.

sudo chown -R `whoami`:admin /usr/local/bin

Für einige Pakete müssen Sie dies auch für /usr/local/share oder /usr/local/opt tun:

sudo chown -R `whoami`:admin /usr/local/share
sudo chown -R `whoami`:admin /usr/local/opt

264voto

zakishaheen Punkte 5143

Statt einen bestimmten Befehl auszuführen, würde ich empfehlen, brew doctor auszuführen und alle Warnungen ernst zu nehmen. Es könnten andere Probleme auftreten, an denen Sie hängen bleiben, die nicht in dieser Frage erfasst werden.

Außerdem können sich im Laufe der Zeit Änderungen bei brew ergeben, so dass bestimmte Befehle möglicherweise nicht mehr gültig sind. brew doctor stellt jedoch sicher, dass Sie eine aktuelle Fehlerbehebung erhalten.

89voto

gokcand Punkte 6290

Für diejenigen, die nach dem Fehler /usr/local/sbin nicht beschreibbar ist suchen:

UPDATE: Es könnte /usr/local/someOtherFolderName sein, z.B. /usr/local/include. Sie müssen einfach diesen Ordner erstellen:

  • sudo mkdir someOtherFolderName

Erstellen Sie zuerst den Ordner sbin, beachten Sie, dass dies sudo Privilegien erfordert

  • cd /usr/local

  • sudo mkdir sbin

  • sudo chown -R $(whoami) $(brew --prefix)/*

  • brew link yourPackageName

83voto

stonecrusher Punkte 1236

Die anderen Antworten sind richtig, soweit sie gehen, aber sie beantworten nicht, warum dieses Problem auftreten könnte und wie man diese Ursache beheben kann.

Ursache

Es gibt zwei mögliche Ursachen für dieses Problem:

  1. Die Homebrew-Installation wurde mit einem anderen Benutzer als dem durchgeführt, den Sie derzeit verwenden. Homebrew geht davon aus, dass nur der Benutzer, der es ursprünglich installiert hat, es verwenden möchte.
  2. Sie haben Software installiert, die nach /usr/local schreibt, ohne Brew zu verwenden. Dies ist die Ursache, die brew doctor vorschlägt, wenn Sie es ausführen.

Lösung

Multiuser Homebrew

Wenn Sie mehrere Benutzerkonten haben und möchten, dass mehr als einer von ihnen Brew verwenden kann, müssen Sie einige Schritte durchlaufen, sonst müssen Sie jedes Mal, wenn Sie Benutzer wechseln, ständig die Besitzrechte der Homebrew-Dateistruktur ändern, und das ist keine gute Idee.

Detaillierte Anweisungen finden Sie online, aber die schnelle Antwort lautet wie folgt:

  1. Erstellen Sie eine Gruppe mit dem Namen brew:

    1. Öffnen Sie Systemeinstellungen
    2. Klicken Sie auf Benutzer & Gruppen
    3. Klicken Sie auf das "+" (ggf. vorher entsperren)
    4. Wählen Sie bei Neues Konto Gruppe
    5. Geben Sie brew ein
    6. Klicken Sie auf Gruppe erstellen
  2. Wählen Sie die Gruppe brew aus und fügen Sie die Benutzerkonten hinzu, die Brew verwenden möchten.
  3. Ändern Sie den Gruppenbesitz des Ordners /usr/local: sudo chgrp -R brew /usr/local
  4. Ändern Sie die Berechtigungen, um Schreibzugriff auf /usr/local als Gruppe hinzuzufügen: sudo chmod -R g+w /usr/local
  5. Ändern Sie das Gruppen-Homebrew-Cache-Verzeichnis: sudo chgrp -R brew /Library/Caches/Homebrew
  6. Ändern Sie die Berechtigungen für das Homebrew-Cache-Verzeichnis: sudo chmod -R g+w /Library/Caches/Homebrew

Einzelbenutzer-Homebrew

Wenn Sie nicht versuchen, mehr als einen Benutzer mit Homebrew zu verwenden, dann ist die Lösung, die von den anderen Antworten basierend auf den Vorschlägen von brew doctor bereitgestellt wird, wahrscheinlich ausreichend:

sudo chown -R $(whoami) /usr/local

sudo chown -R $(whoami) /Library/Caches/Homebrew

Überprüfung

Nach diesen Schritten sollte brew doctor Erfolg melden, egal welcher Benutzer in der brew-Gruppe ist, vorausgesetzt, Sie haben sich abgemeldet und wieder angemeldet, um die neuen Gruppenmitgliedschaften anzuwenden (wenn Sie den Multiuser-Weg gegangen sind). Wenn Sie gerade Probleme für Single-User-Homebrew behoben haben, dann müsste kein erneutes An- und Abmelden notwendig sein, da sich keine Ihrer Gruppenmitgliedschaften geändert haben.

39voto

kinnth Punkte 603

Ich fand für meine spezielle Einrichtung, dass die folgenden Befehle funktionierten

brew doctor

Und dann zeigte mir das, wo meine Fehler waren, und dann dieser etwas andere Befehl aus dem obigen Kommentar.

sudo chown -R $(whoami) /usr/local/opt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X