Machen Sie Dateien in `/ usr / local` für Homebrew beschreibbar

35

Ich habe versucht, Homebrew zum Laufen zu bringen, aber es sieht so aus, als ob nicht alles in /usr/localmeinem Inneren beschreibbar ist und alles umkippt.

Es fordert mich immer wieder dazu auf chown /usr/local, und das habe ich versucht. Operation verweigert, also habe ich es geschafft. Es schien zu funktionieren, aber mit einer unheimlichen Stille, die ich höflich in Unix gehört habe. Leider brew updatestoßen alle nachfolgenden Versuche auf die gleiche Kakophonie von Fehlern.

Ich überarbeite den Befehl mit -vund es sieht so aus, als ob die Operation für nichts drinnen erlaubt ist.

So sehr die Antwort wahrscheinlich "UNIX lernen" ist, ich versuche hier nur, einige Jobanforderungen für ein Tutorial über Ruby zu erfüllen, das sind also ein paar Schritte über dem, an dem ich mich gerade befinde.

brew doctor:

Warning: /usr/local/Frameworks isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/Frameworks
Warning: /usr/local/Cellar isn't writable.
You should `chown` /usr/local/Cellar
Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/etc
Warning: /usr/local/include isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/opt isn't writable.
You should `chown` /usr/local/opt
Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man3
    /usr/local/share/man/man5
    /usr/local/share/man/man7
    /usr/local/share/man/man8
Warning: /usr/local/var isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/var
Tigt
quelle
Sagt brew doctorIhnen etwas Nützliches? Veröffentlichen Sie die Ausgabe hier.
Ian C.
@ IanC. Es ist eine lange Liste, in der alles, was mit dem Brauen zusammenhängt, nicht beschreibbar ist. Gibt es ein StackExchange Pastebin-Dienstprogramm? Es gibt eine Menge davon.
Tigt
Nun, das ist merkwürdig. Es gibt jetzt viel weniger davon als es gab.
Tigt
Zu Ihrer Information: Ich bin gerade gelaufen brew updateund habe festgestellt, dass "Homebrew nicht länger Eigentümer von / usr / local sein muss". Mehr Infos in dieser Frage . Um an diesen Punkt zu gelangen, müssen Sie die Berechtigungen für / usr / local :)
acobster

Antworten:

26

Dies sollte gelöst werden, indem die Perms in diesem Verzeichnis wie folgt geändert werden:

$ cd /usr/local
$ sudo chown -R <your-username>:<your-group-name> *

Wenn Sie Ihre Gruppe nicht kennen, geben Sie einfach ein id -g.

jherran
quelle
Der wichtige Teil ist -R, es rekursiv zu machen. Und Sie müssen wahrscheinlich die chownVerwendung tun sudo. Für die Benutzergruppe verwende ich normalerweise staffOS X.
nwinkler
Interessant. Warum unterscheidet sich die Verwendung der Gruppe nur vom Benutzer?
Tigt
4
Warum ist es richtig, dass / usr / local Ihrem Benutzer gehört? Ich denke, das ist ein Sicherheitsrisiko, da es viele andere Programme gibt, die / usr / local verwenden und stillschweigend übernommen werden könnten. Braucht das Brauen wirklich etwas so Drastisches?
Dfrankow
1
Ich halte dies für gefährlich, da hier die Gruppe 'staff' ausgewählt wird, was bedeutet, dass jeder Benutzer des Betriebssystems den Inhalt von / usr / ändern kann. Sie sollten wahrscheinlich auf "admin" wechseln.
Indolering
1
@dfrankow yep, das ist ein Fehler von Homebrew. Sie haben nicht einmal darüber nachgedacht, was passiert, wenn sich zwei Benutzer auf demselben Computer befinden.
6.
22

Sie müssen sudo verwenden , um den Befehl mit erhöhten Rechten auszuführen:

sudo chown -R `whoami` /usr/local
Ian C.
quelle
Ich tat. "Operation verweigert, also habe ich es geschafft."
Tigt
1
Für Fischschalenbenutzer ist essudo chown -R (whoami) /usr/local
Kibin
10

Ich war mit macOS 10.13.4 gestern dieses Problem konfrontiert , und ich versuchte, sudo chgrp -R admin /usr/localoder sudo chown -R <your-username>:<your-group-name> /usr/localwelche erhalten Operation not permittedFehler , auch wenn mitsudo

Also habe ich versucht, nur chgrpfür einen Homebrewverwandten Ordner einen Schreibzugriff auf diese Ordner zu gewähren admin(Mein Benutzer ist in einer adminGruppe, hängt von dem Benutzer ab, den Sie ausführen, möglicherweise müssen Sie zu einer anderen Gruppe wechseln)admin

sudo chgrp -R admin /usr/local/Homebrew/
sudo chmod -R g+w /usr/local/Homebrew/
sudo chgrp -R admin /usr/local/var/homebrew/
sudo chmod -R g+w /usr/local/var/homebrew/

Nachdem ich diese Befehle ausgeführt habe, kann ich ohne Probleme ein neues Paket installieren. Wenn Sie erneut auf ein Berechtigungsproblem stoßen, versuchen Sie, die ersten beiden Befehle auszuführen, indem Sie den Ordnernamen durch den Namen ersetzen, bei dem Sie auf ein Berechtigungsproblem stoßen.

Hoffe das wird den anderen Benutzern mit macOS 10.13 helfen.

Hinweis: Auch wenn das Ändern des Eigentümers /usr/localoder der Gruppe von /usr/localund Gewähren des Zugriffs für Ihre Gruppe möglicherweise funktioniert, sollten Sie dies NIEMALS tun, da Sie auch den anderen nicht verwandten Ordner ändern . Das Ändern der Ordner, die Sie benötigen, ist wesentlich sicherer.

Kong
quelle
Das geht wirklich gut für mich! <3 danke
DariusV
Dies sollte als die richtige Antwort gewählt werden! Danke für Ihre Hilfe!
Yini
2

Um die Berechtigungsprobleme in den Verzeichnissen zu beheben, können wir den folgenden Befehl ausführen:

brew prune
Catto
quelle
1

Es hat bei mir funktioniert.

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local
Mahfuz
quelle
0

Die Antwort von Reza in dieser Frage hat für mich funktioniert:

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

Sie können die Berechtigung für / usr / local selbst nicht ändern, aber Sie können die richtige Berechtigung für Ordner darunter ändern

Spacetyper
quelle