806 Stimmen

Wie repariere ich Homebrew-Berechtigungen?

Ich habe Homebrew jetzt schon 3 Mal deinstalliert und installiert, weil es mir anscheinend nie erlaubt, irgendetwas zu installieren, da es mir am Ende der meisten Installationen Berechtigungen verweigert.

Als Beispiel werde ich hier das aktuelle Szenario des Libjpeg-Downloads posten, mit dem ich gerade konfrontiert bin.

Ich versuche, libjpeg zu installieren und erhalte:

$ brew install libjpeg
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/jpeg-8d.mountain_lion.bottle.1.tar.gz
Already downloaded: /Library/Caches/Homebrew/jpeg-8d.mountain_lion.bottle.1.tar.gz
==> Pouring jpeg-8d.mountain_lion.bottle.1.tar.gz
Warning: Could not link jpeg. Unlinking...
Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link jpeg'
Error: Permission denied - /usr/local/opt/jpeg

'brew link jpeg' führt zu

Error: Permission denied - /usr/local/opt/jpeg

Hier ist, was mein Brew-Doktor sagt

$ brew doctor
Warning: "config" scripts exist outside your system or Homebrew directories.
./configure scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
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:

jpeg

Dieses Berechtigungsproblem macht es unmöglich, Brew für irgendetwas zu nutzen, und ich würde mich über jede Empfehlung sehr freuen.

7voto

Fardin Abdi Punkte 1110

Dies hat das Problem für mich gelöst.

sudo chown -R "$USER":admin /Users/$USER/Library/Caches/Homebrew
sudo chown -R "$USER":admin /usr/local

6voto

Max Dercum Punkte 87

All diese Vorschläge könnten funktionieren. In der neuesten Version von Brew Doctor wurden jedoch bessere Vorschläge gemacht.

Zunächst einmal - reparieren Sie das Chaos, das Sie wahrscheinlich bereits in /usr/local angerichtet haben, indem Sie dies in der Befehlszeile ausführen:

sudo chown -R root:wheel /usr/local

Dann übernehmen Sie die Eigentümerschaft über die Pfade, die speziell für diesen Benutzer sein sollten:

sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin /usr/local/var /usr/local/Frameworks /usr/local/lib/pkgconfig /usr/local/share/locale

All diese Informationen sind verfügbar, wenn Sie sudo brew update ausführen und dann alle Warnungen und Fehler lesen, auf die Sie stoßen werden...

6voto

Krishnadas PC Punkte 4850

Für mich hat es funktioniert nach

brew doctor

Die Berechtigungsbefehle führten zu einem anderen Fehler

chown: /usr/local: Operation not permitted

5voto

paddotk Punkte 1185

Bei MacOS Mojave hatte ich auch keine Erlaubnis, den /usr/local-Ordner mit chown zu ändern (sudo chown -R "$USER":admin /usr/local).

sudo chown -R "$USER":admin /usr/local/* hat bei mir jedoch funktioniert und die Berechtigungen von allem innerhalb des local-Ordners geändert.

Hoffentlich hilft das anderen mit dem gleichen Problem.

4voto

Arsalan Mehmood Punkte 1432

Eigentlich ist es ganz einfach, führen Sie diesen Befehl aus: brew doctor

Und er wird Ihnen sagen, was zu tun ist, um Berechtigungsprobleme zu beheben, zum Beispiel in meinem Fall:

Das war das Problem:

Warnung: Die folgenden Verzeichnisse können von Ihrem Benutzer nicht beschrieben werden:
/usr/local/share/man/man5
/usr/local/share/man/man7

Und das war die Lösung:

Sie sollten das Eigentum dieser Verzeichnisse auf Ihren Benutzer ändern.
  sudo chown -R $(whoami) /usr/local/share/man/man5 /usr/local/share/man/man7

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