Der Brauarzt sagt: "Warnung: / usr / local / include ist nicht beschreibbar."


352

Brauarzt sagt:

Warnung: / usr / local / include ist nicht beschreibbar. Dies kann passieren, wenn Sie "sudo make install" -Software verwenden, die nicht von Homebrew verwaltet wird.

Wenn ein Brew versucht, eine Header-Datei in dieses Verzeichnis zu schreiben, schlägt die Installation während des Verknüpfungsschritts fehl.

Sie sollten wahrscheinlich chown/ usr / local / include

Ich habe verschiedene Befehle ausprobiert, um dies zu lösen, aber ich stecke immer noch hier fest.

Ich laufe Homebrew am 10.8.2


1
Ich habe einen ähnlichen Fehler für "/ usr / local / lib" in Homebrew 0.9.4 erhalten, der auch mit der folgenden Lösung behoben wurde.
JeremiahLee

Antworten:


680

Übernehmen Sie das Eigentum daran und alles darin.

Mac OS High Sierra oder neuer: (siehe Kirk in den Kommentaren unten)

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

Frühere Versionen von Macos:

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

Dann mach noch einen

$ brew doctor

13
Operation unzulässig?
Topwik

68
Irgendein Vorteil statt $ sudo chown -R `whoami` /usr/local/?
Labu

2
@ WillemLabu eine Prozessgabel weniger? whoami ist eine effektive Benutzer-ID und wie die Manpage sagt, veraltet :) bash ist die Standard-Shell unter OSX und irgendwo wird USER eingestellt.
Jrwren

7
Ich frage mich, ob der Wechsel des Besitzers von / usr / local zu einem Benutzer eine saubere Lösung ist. Wäre es nicht besser, $ USER zur 'Wheel'-Gruppe hinzuzufügen? Oder ändern Sie die Gruppe von / usr / local in die Administratorgruppe?
Michael Lehn

13
Laut Homebrew unter Mac OS /usr/localfunktioniert High Sierra Chown nicht mehr. Verwenden Sie stattdessensudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett

115

Was für mich funktioniert hat, war auch

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

20
Dies ist die einzige vernünftige Lösung, die nicht wirklich vernünftig ist, um / usr / local in einem Mehrbenutzer-
Betriebssystem

3
Müssen diesem Kerl ein paar Stimmen geben! ;) Das hat super geklappt.
jrista

1
Dies ist die bessere Lösung IMHO
Jacurtis

5
Nun, nicht in High Sierra. "Dateimodus in / usr / local kann nicht
geändert werden

1
@ user980018 Ich bin gerade auf dasselbe gestoßen - hier ist die Problemumgehung, die ich verwendet habe
Casey Davidson

38

Was für mich funktioniert hat war

$ sudo chown -R yourname:admin /usr/local/bin

37

Das einzige, was bei El Capitan für mich funktioniert hat, war:

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

5
chown: / usr / local: Betrieb nicht erlaubt
AlxVallejo

1
@AlxVallejo es auf / usr / local / bin zu tun hat für mich gearbeitet
marcotama

23

Wenn Sie sich in High Sierra befinden und dieses Problem auftritt , führen Sie die folgenden Schritte aus ( Hinweis: / usr / local kann in High Sierra nicht angezeigt werden ):

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

Versuchen Sie dann, mit Brew Link zu verknüpfen. Ich hatte ein ähnliches Problem und keine der oben genannten Lösungen funktionierte für High Sierra. Hoffe das hilft jemandem.


21

Für High Sierra:

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

Probieren Sie dann Ihre Brühbefehle aus.

Ausgabe Nr. 3285


2
Sie sind sich nicht sicher, warum dies abgelehnt wurde, wenn Sie zuvor Brew installiert und auf High Sierra aktualisiert haben. Durch die Neuinstallation von Homebrew wird das Problem behoben. Dies ist der einfachste Ansatz
sam9046

Ironischerweise liegt das daran, dass das Skript genau das tut, was die anderen Antworten vorschlagen.
Leichtigkeitsrennen im Orbit

Dies funktionierte für mich, aber zuerst deinstallierte ich die vorherige mit: ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )"
abbas

12

Sie können den Befehl alias, um dieses Problem in Ihrem zu beheben, .bash_profileund ihn jedes Mal ausführen, wenn Sie darauf stoßen:

Fügen Sie am Ende der Datei ~/.bash_profileFolgendes hinzu:

alias fix_brew='sudo chown -R $USER /usr/local/'

Und jetzt können Sie in Ihrem Terminal Folgendes ausführen:

$ fix_brew

12

Dies funktionierte bei mir unter macOS 10.12

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

Ich hatte das Problem beim Aktualisieren von Homebrew mit folgendem Fehler:

/usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local

8

Für einige wird es sein:

sudo chown -R JonJames:admin /usr/local/lib

wobei "lib" im Gegensatz zu "bin" oder "include" oder "was auch immer" verwendet wird

Die Homebrew- Warnung "sollte" erklären, was speziell nicht beschreibbar ist, und Ihnen dann eine Befehlssyntax zum Folgen geben. Sie müssen jedoch das ":" verwenden, im Gegensatz zu dem, was in der Warnung erwähnt wird, was eigentlich keine korrekte Syntax ist.


Die Syntax in der Warnung ist ein bisschen verwirrend. Ich glaube, ich habe den Hauptmitarbeiter von Homebrew per E-Mail gefragt, ob sie etwas daran ändern würden, und auf die Antwort gewartet. Vielleicht wird sich die Sprache der Warnung in zukünftigen Brau-Updates ändern.
Jonathan James

Vielen Dank! Dies funktionierte nach einigem Suchen.
Thiswayup


5

Gleicher Fehler unter MacOS 10.13

/usr/local/includeund /usr/local/ /usr/libwurden nicht erstellt. Ich habe manuell erstellt und brew linkschließlich gearbeitet.


3

Sie müssen / usr / local / include und / usr / local / lib erstellen, wenn sie nicht vorhanden sind:

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include

3

Was für mich funktioniert hat, obwohl ich mehr als einen Benutzer auf meinem Computer habe.

Terminal verwenden:

  • Laufen brew doctor
    • Mehrere zu sehen /usr/local/...ist kein beschreibbarer Fehler
  • Deaktivieren des Systemintegritätsschutzes von Mac: https://apple.stackexchange.com/a/208481/55628
  • Führen Sie Folgendes aus
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

Ausführen von Macbook Pro OSX High Sierra (Version 10.13.3.)

EDIT 1:

Zu Ihrer Information - Bitte beachten Sie, dass dies ein Problem beim Ausführen von MySQL auf Ihrem MAC verursacht.

Um meinen lokalen Server starten zu können, musste ich Folgendes ausführen:

sudo chown -R mysql:mysql /usr/local/mysql/data

Nachdem Sie dies ausgeführt haben, können Sie Ihren lokalen MySQL Server starten.


1
Ausgezeichnet! Vielen Dank!
Shmuli

3
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

Dadurch werden alle erforderlichen Verzeichnisse erstellt und der richtige Besitz erhalten.

Nach dem Ausführen dieser Befehle überprüfen Sie mit: brew doctor

Dies funktioniert für Mojave.


2

Sie müssen die Kontrolle über das Ganze bekommen, /usr/localum dies zu tun, müssen Sie eine rekursive chownunter machen/usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/


2

Ich möchte nur den bescheidenen Kommentar von sam9046 als alternative und möglicherweise viel einfachere Lösung wiederholen , die in meinem Fall funktioniert hat: Deinstallieren und installieren wiederholen Homebrew erneut von Grund auf neu. Keine Sudo-Befehle erforderlich.

Sie können das Deinstallationsskript auch über diesen Link oben durchsuchen / ändern, wenn Sie sicherstellen möchten, dass es Ihre zuvor installierten Pakete nicht beeinträchtigt. In meinem Fall war dies nur meine Heimmaschine, also habe ich gerade von vorne angefangen.



2

Zuerst müssen Sie das Verzeichnis erstellen:

sudo mkdir /usr/local/include

Zweite:

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

1

Ich habe dies in meiner Organisation erlebt, nachdem alle unsere Benutzer an Active Directory gebunden waren (wodurch die UID effektiv von 50x auf ###### geändert wurde).

Jetzt geht es einfach darum, den Besitz aller Dateien, die x gehörten, in y zu ändern.

Wobei 501 meine alte numerische Benutzer-ID ist, die immer noch allen Homebrew-Dateien zugeordnet ist.

Die alte Benutzer-ID kann mit gefunden werden ll /usr/local/Cellar

Aktualisieren Sie nun den Besitz sudo find /usr/local -user 501 -exec chown -h $USER {} \;

Auf diese Weise vermeiden wir, den Besitz von Dateien zu ändern, die nicht von Homebrew kontrolliert werden oder einem anderen Systembenutzer gehören.


1

Gehen Sie in das Verzeichnis / bin und geben Sie Folgendes ein:

chown -R $ (whoami): admin / usr / local / bin

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.