Ich habe gerade ein Upgrade von Snow Leopard auf Lion durchgeführt und versuche, Homebrew zu installieren. Nach der Installation werde ich jedoch brew doctor
gemäß den Installationsanweisungen ausgeführt und sehe eine Reihe von Fehlern, die darauf hinweisen, dass die Verzeichnisse / usr / local nicht beschreibbar sind. Zum Beispiel:
Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/share
Ich bekomme diese für eine Reihe von Verzeichnissen:
You should probably `chown` /usr/local/include
You should probably `chown` /usr/local/share
You should probably `chown` /usr/local/share/man
Ich kann nicht herausfinden, warum dieser Fehler auftritt, da ich anscheinend Teil der Unix-Gruppe bin, die über Schreibberechtigungen für diese Verzeichnisse verfügt:
Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x 4 root admin 136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$
Was vermisse ich?
/usr/local
gehören sollte, wenn dieser Computer mehrere Administratorbenutzer hat. Es ist mir auch möglich, an die Orte zu schreiben, über die ich mich beschwere. Irgendwelche anderen Ideen?brew doctor
Antworten:
EDIT: Das Problem ist jetzt in Homebrew behoben:
Wenn das Problem weiterhin auftritt, aktualisieren Sie Homebrew wie folgt:
Wenn Sie wissen möchten, was das Problem war, habe ich meine ursprüngliche Antwort unten beibehalten.
Ignorieren Sie das Berechtigungsproblem vorerst
Ich habe genau das gleiche Problem und meiner Meinung nach liegt das Problem
brew doctor
eher in Ihrer als in meiner und meiner Installation.Ich denke, Sie sollten das Problem ignorieren, anstatt den Eigentümer von zu ändern
/usr/local
. Alternativ können Sie Ihr lokalesbrew doctor
Skript reparieren, bis ein Fix veröffentlicht wird. Siehe unten.Ich halte es nicht für richtig,
/usr/local
einen bestimmten Benutzer in Besitz zu nehmen. Ich habe mehr als einen Administrator auf diesem Computer. Sie sollten/usr/local
im Besitz vonroot:admin
als Eigentümer und Gruppe verlassen.Meine Untersuchung
Wie für Sie habe ich eine
/usr/local
, die von meinem Benutzer, der auch Mitglied deradmin
Gruppe ist, perfekt beschreibbar ist :Lassen Sie uns testen, ob das Verzeichnis wirklich beschreibbar ist:
Weitere Untersuchungen des
brew doctor
Codes führten mich zu dem Schluss, dass die Verwendung der Ruby-FunktionPathname.writable?
das Problem verursacht. Betrachten Sie diese interaktive Ruby-Sitzung:Funktion
Pathname.writable?
sagt,/usr/local
ist nicht beschreibbar, obwohl wir wissen, dass es ist.Wenn Sie
Pathname.writable_real?
stattdessen verwenden, erhalten Sie das richtige Ergebnis - das Verzeichnis ist beschreibbar:Dies sollte in behoben werden
/usr/local/Library/Homebrew/cmd/doctor.rb
. Sie können das Problem in Ihrer eigenen Installation beheben, während Sie auf eine Korrektur warten.Der Unterschied zwischen den beiden Funktionen ist (gemäß den Ruby-Dokumenten hier und hier ):
beschreibbar? (Dateiname) → wahr oder falsch: Gibt wahr zurück, wenn die benannte Datei durch die effektive Benutzer-ID dieses Prozesses beschreibbar ist.
writable_real? (Dateiname) → true oder false: Gibt true zurück, wenn die benannte Datei durch die tatsächliche Benutzer-ID dieses Prozesses beschreibbar ist.
quelle
writable_real?
... Vielleicht ist es Zeit für eine Pull-Anfrage?!? :-)Ich glaube, Sie brauchen nur Folgendes:
brew update
Dann versuchen Sie es
brew doctor
erneut.Möglicherweise erhalten Sie immer noch Fehler zu Abhängigkeiten, die Sie nicht verwenden (in meinem Fall Java), was in Ordnung ist. Wenn Sie die Befehlszeilentools für Xcode anstelle der vollständigen Installation von Xcode installiert haben, wird auch eine Fehlermeldung angezeigt, dass Sie einen ungültigen Pfad haben. Direkt in der Nachricht wird jedoch auch angezeigt, dass kein gültiger Pfad vorhanden ist Verwenden Sie einfach die Befehlszeilentools für Xcode, damit ist das auch in Ordnung.
Zum Nutzen anderer: Denken Sie daran, dass Sie als Administrator angemeldet sein müssen, damit dies funktioniert.
quelle
Ich folgte einer Kombination der Vorschläge von iolsmit und Phil M: Ich habe diese Verzeichnisse meinem Benutzernamen zugeordnet und bin dann
brew update
erneut gelaufen , gefolgt vonbrew doctor
. Dadurch wurden alle Fehlermeldungen beseitigt, und die Brauinstallationen scheinen nun gut zu funktionieren. Danke euch beiden!quelle
Daumen hoch für die Untersuchung und Klärung von @ mgd ... es ist genau richtig!
Es scheint, dass ein ähnliches Problem vor etwa einem Jahr auf github.com angesprochen wurde, aber nie (richtig?) Gelöst wurde, zumindest nicht durch die Verwendung von
writable_real?
... Vielleicht ist es Zeit für eine Pull-Anfrage?!? :-)quelle