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.

1090voto

Paul Rada Punkte 18953

Ich konnte das Problem lösen, indem ich chown auf den Ordner verwendet habe:

sudo chown -R "$USER":admin /usr/local

Darüber hinaus müssen Sie (wahrscheinlich) dasselbe auf /Library/Caches/Homebrew tun:

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

Offenbar hatte ich zuvor sudo verwendet, was meine Ordnerberechtigung auf /usr/local geändert hat, seitdem waren alle Installationen mit brew erfolgreich.

Diese Antwort stammt von gitHub's homebrew issue tracker

890voto

andrewwong97 Punkte 8539

Neuer Befehl für Benutzer auf macOS High Sierra, da es nicht möglich ist, chown auf /usr/local durchzuführen:

bash/zsh:

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

fish:

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

Referenz: Can't chown /usr/local in High Sierra

342voto

Arnaud Punkte 16317

Als erste Option für jeden, der hier landet wie ich, folge einfach dem, was dir dies vorschlägt:

brew doctor

Das ist der sicherste Weg und es hat mir unter anderem empfohlen:

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

was das Berechtigungsproblem gelöst hat.

Der OP hat genau das gemacht, hat jedoch anscheinend nicht den obigen Vorschlag erhalten; du könntest ihn bekommen und es ist immer besser, damit anzufangen und nur dann nach nicht-trivialen Lösungen zu suchen, wenn es nicht geholfen hat.

120voto

Richard Punkte 1559

Wenn Sie OS X High Sierra verwenden, kann /usr/local nicht mehr chown'd werden. Sie können verwenden:

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

42voto

Anthony To Punkte 2093

Ich wollte mich noch nicht mit Ordnerberechtigungen herumschlagen, also habe ich folgendes gemacht:

brew doctor
brew upgrade
brew cleanup

Dann konnte ich erfolgreich meine anderen Brew-Formeln installieren.

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