kann / usr / local für Homebrew in Mac OS X 10.13 High Sierra nicht chown

118

Homebrew benötigt Berechtigungen in / usr / local und da sonst niemand meinen Laptop benutzt, habe ich das immer einfach gemacht

sudo chown -R $(whoami) $(brew --prefix)

aber in High Sierra gibt dies

chown: /usr/local: Operation not permitted

Was ist das Problem?

Dan
quelle
Gelöst mit: sudo chown -R "$ USER": admin / usr / local / *
Marcelo Campusano

Antworten:

218

Das Problem trat immer wieder auf ... nachdem ich tiefer gegraben hatte, stellte ich fest, dass nur die Deinstallation von Homebrew und die anschließende Neuinstallation dieses Problem lösten.

Deinstallieren Sie Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Dann installieren Sie es erneut:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Uri Meirav
quelle
4
Dies war die einzige Möglichkeit, mein Homebrew nach dem "High" Sierra-Upgrade zu reparieren. Mein Fehler war: gh4x-mbpr:~ gh4x$ brew link git Linking /usr/local/Cellar/git/2.15.0... Error: Permission denied @ dir_s_mkdir - /usr/local/lib und hat sudo chown -R $(whoami) $(brew --prefix)/* nicht geholfen ...
Gh4x
Unglaublich. Das erste Mal fehlgeschlagen, das Deinstallationsskript fehlgeschlagen, die zweite Installation hat funktioniert.
GreenAsJade
Möglicherweise möchten Sie die Ausgabe zuerst brew listin einer Datei speichern, um aufzuzeichnen, welche Pakete installiert wurden.
Giles Gardam
1
Keine der anderen verschiedenen Mojave-Homebrew-Korrekturen würde auf meinem System funktionieren. Deinstallation / Neuinstallation hat einwandfrei funktioniert.
pkamb
2
Funktioniert auch mit Catalina
Gefilte Fish
52

Leider kann man /usr/localin High Sierra nicht mehr chown . Eine Problemumgehung besteht darin, sudo mkdir /usr/local/includeund /usr/local/Frameworkswenn sie nicht existieren, und

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

Vielen Dank an ilovezfs für diese einfache Problemumgehung und für das erstaunliche Homebrew!

Dan
quelle
9
Funktioniert immer noch nicht. $ brown update Fehler: Das Verzeichnis / usr / local ist nicht beschreibbar.
Laurence Cope
Versuchen Sie, Homebrew zu deinstallieren und neu zu installieren: stackoverflow.com/questions/46459152/…
ruggershawn
Wie ich an anderer Stelle kommentiert habe, werden durch die Deinstallation ALLE Ihre Brühpakete entfernt.
Jaydel
$(brew --prefix)sollte bewerten /usr/local/, glaube ich.
Jordan Stewart
33

Sie können die Berechtigung nicht für sich /usr/localselbst ändern , aber Sie können die richtige Berechtigung für darunter liegende Ordner ändern, sodass dies das Problem behoben hat
sudo chown -R $(whoami) /usr/local/*

Reza Farshi
quelle
1
Holen Sie sich das gleiche Problem noch
Laurence Cope
2
Läuft unter MacOS High Sierra. Hat funktioniert. Vielen Dank.
Prinz Odame
2
Arbeitete für mich an: macOS High Sierra 10.13.6
Gail Parsloe
8

Ich folgte diesen aber das Problem weiterhin bestehen.
Also habe ich Homebrew neu installiert, ohne das vorherige zu deinstallieren. Es funktioniert jetzt!
(Ich weiß nicht wie)

Aayush Gautam
quelle
3
Ich empfehle, Homebrew vollständig zu deinstallieren und dann erneut zu installieren.
k1r8r0wn
Mehrere Installationen haben funktioniert, ich konnte sie erst nach der Deinstallation beheben.
cbowns
Deinstallation wird alles vermasseln. Ich habe Tonnen von Paketen installiert und muss sie erneut installieren. Leider hat das alles vorher funktioniert, weil ich diese Pakete habe.
Jaydel
3

Versuchen Sie, den Systemintegritätsschutz zu deaktivieren . Aus der Dokumentation:

Der Systemintegritätsschutz kann mit dem Befehl csrutil (1) konfiguriert werden.

Sie können überprüfen, ob der Systemintegritätsschutz derzeit auf Ihrem System aktiviert ist, indem Sie den folgenden Befehl im Terminal ausführen:

$ csrutil status
System Integrity Protection status: enabled.

Um den Systemintegritätsschutz zu aktivieren oder zu deaktivieren, müssen Sie das Wiederherstellungsbetriebssystem starten und den Befehl csrutil (1) vom Terminal aus ausführen.

Starten Sie das Wiederherstellungsbetriebssystem, indem Sie Ihren Computer neu starten und beim Start die Befehls- und R-Taste gedrückt halten. Starten Sie Terminal über das Menü Dienstprogramme. Geben Sie den folgenden Befehl ein: $ csrutil enable

Nach dem Aktivieren oder Deaktivieren des Systemintegritätsschutzes auf einem Computer ist ein Neustart erforderlich.

Elle Mundy
quelle
Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Jake Symons
3
Dies ist ein bisschen wie das Entfernen des Schutzes von Ihrer Tischkreissäge. Es funktioniert, und es kann manchmal notwendig sein, aber es ist sicherer, wenn Sie es nicht tun müssen. Sich als Eigentümer von / usr / local zu etablieren, damit Homebrew funktioniert, schien sowieso immer ein Hack zu sein.
Caleb
3
Dies wird dringend empfohlen! Es ist äußerst gefährlich, es sei denn, der Benutzer tut nicht, was er tut.
Abu Shumon
@oligofren: D: D: D komm schon Mann. Entspann dich, es ist kein englischer word in contextWettbewerb. : D: D Flag zur Warnung des Benutzers. Aber in Ordnung, Sie nehmen dann Formulierungen für mich auf: p: p
Abu Shumon
1

Wenn Sie zsh verwenden, weil Sie von bash kommen, müssen Sie möglicherweise Ihren $ PATH ändern. Sie sollten export PATH=$HOME/bin:/usr/local/bin:$PATH in .zshrc hinzufügen

dann sollte es funktionieren, dieses Problem wurde auf meinem Mac auf diese Weise behoben.

Zyqbit
quelle
1

Ich bin auch am 10.13 High Sierra. Ich habe die vorherigen Vorschläge ausprobiert. Nichts hat geklappt. Schließlich habe ich zuerst versucht, die Befehlszeilentools zu installieren :

xcode-select --install

und danach den Befehl Brew install (erneut) ausführen:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

und es hat endlich funktioniert.

Ed Mechem
quelle
0

Stellen Sie sicher, dass für den Basisordner oder einen Ordner, auf den eine Installation Zugriff benötigt, keine Sperre festgelegt ist.

Selbst wenn die Berechtigungen und der Besitz korrekt festgelegt sind und Sie derzeit mit einem korrekten Benutzer / oder Root-Benutzer angemeldet sind, können Sie keine neuen Ordner oder Verzeichnisse erstellen.

Daniel
quelle
0

Ich hatte den Ordner / user / local / Frameworks nicht, daher wurde dies für mich behoben

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

Ich habe OSX High Sierra

ap00724
quelle
0

Das ist Kaushik. Ich verwende MacBook Pro macOS Catalina 10.15.4. Ich habe ein neues Administratorkonto erstellt, aber Brew hat einen Fehler ausgelöst. Daher folgte ich einem Schritt von diesem Beitrag. Was funktioniert hat ist:

sudo chown -R $ (whoami) $ (brauen - Präfix) / *

koushik v
quelle