Ich benutze homebrew
als Paketmanager für bestimmte Webentwicklungs-Apps. Behaltenbrew
auf dem Laufenden , laufe ich update brew
alle paar Tage und laufe auch brew doctor
. Normalerweise ist das in Ordnung und brew
ich bin bereit zu brauen.
Hin und wieder erhalte ich jedoch den folgenden Fehler:
Warnung: / usr / local / etc ist nicht beschreibbar.
Dies kann passieren, wenn Sie "sudo make install" -Software verwenden, die nicht von Homebrew verwaltet wird. Wenn eine Formel versucht, eine Datei in dieses Verzeichnis zu schreiben, schlägt die Installation während des Verknüpfungsschritts fehl.
Du solltest möglicherweiße
chown
/ usr / local / etcWarnung: Das Verzeichnis / usr / local ist nicht beschreibbar. Auch wenn dieses Verzeichnis bei der Installation von Homebrew beschreibbar war, können durch andere Software die Berechtigungen für dieses Verzeichnis geändert werden. Einige Versionen der "InstantOn" -Komponente von Airfoil sind dafür bekannt.
Sie sollten wahrscheinlich den Besitz und die Berechtigungen von / usr / local zurück in Ihr Benutzerkonto ändern.
Es ist einfach genug, die Berechtigungen auf meinen Benutzernamen zurückzusetzen. Danachbrew
scheint alles in Ordnung zu sein.
Aber was ist der Grund dafür?
Gibt es ein Protokoll, aus dem hervorgeht, warum sich die Berechtigungen ändern?
quelle
/usr/local
. Aber wenn Sie darauf bestehen, dann könnten Siemake install
ohnesudo
Pakete verwenden, die Sie selbst installieren./usr/local
?Antworten:
Ich hatte genau das gleiche Problem und es stellte sich heraus, dass Sophos Auto-Update daran schuld war. Das habe ich herausgefunden, indem ich Folgendes ausgeführt habe:
sudo fs_usage | grep "usr/local"
Es hat eine Weile gedauert, aber irgendwann sah ich Sophos 'hilfreichen "Installation" -Daemon, der mit den Berechtigungen von / usr / local in Konflikt geriet.
Ich versuche immer noch, eine geeignete Lösung für dieses Verhalten zu finden.
EDIT: Ich glaube, Sophos hat dieses Problem behoben, siehe den Link in den Kommentaren dieser Antwort. Es scheint zumindest für mich behoben zu sein!
quelle
Es stellt sich heraus, dass Filewave der Schuldige ist. Filewave ist eine Systemverwaltungssoftware, mit der unsere Schule Software-Updates pusht. Danke für die Eingabe.
quelle
Ich habe nur eine ungefähre Idee, wie ich an den Erlaubnisdieb komme. Dies ist keine Lösung für Ihr Problem, sondern eine Art Workaround.
Wie wäre es, einen Watchdog in Automator oder mit Hazel (Ordneraktionen) zu schreiben, um diesen bestimmten Ordner zu überwachen, aber anstatt eine Funktion wie Bilder skalieren hinzuzufügen, verwenden Sie einfach ein Shellscript, das mehrere Shell-Befehle ausführt:
fuser <foldername>
.ps auxwwwwww | grep <process id>
) und schließlichLeider bin ich kein Automator sadhu, aber ich habe durch Google herausgefunden, dass es viele Lösungen für ein solches ähnliches Problem gibt.
quelle
Wenn Sie Time Machine verwenden, können Sie die ungefähre Zeit ermitteln, zu der Berechtigungen geändert wurden, indem Sie
Backups.backupdb
im Terminal nachsehen. Verwenden Siels -ld
in den zeitgestempelten Ordnern, zWelche Eigentümer- und Gruppeninformationen anzeigen.
Sobald Sie das Datum der Änderung ermittelt haben, können Sie herausfinden, was sich sonst noch auf Ihrem System geändert hat. Eine einfache Methode besteht darin, die Finder-Datei ›Suchen zu verwenden und ein
Last modified date
Kriterium hinzuzufügen . Andere gute Tools sindfind
undmdfind
im Terminal.quelle
Dies ist ein Nebeneffekt bei der Aktualisierung Ihres Systems. Wahrscheinlich führt OS X während des Aktualisierungsvorgangs eine allgemeine "Reparatur" durch, da / usr / local in einem Stammordner verschachtelt ist.
quelle
Haben Sie
Disk Utility
select verwendet ,Macintosh HD
dann ausgeführtVerify Disk Permission
und dannRepair Disk Permission
bei Bedarf, anstatt es manuell zu tun?Dies sollte Ihr Problem nicht beheben, aber es ist ein guter "bekannter" Ausgangspunkt, um zu sehen, wann Home Brew die Berechtigungen ändert. Es könnte das zugrunde liegende Problem aufzeigen, wenn Sie Glück haben.
Auch
new update -v
für eine ausführlichere Ausgabe, plus alte Protokolle sind hier~/Library/Logs/Homebrew
laut Woher kommt Homebrew-Protokoll?quelle
Disk Utility
Ich würde Berechtigungen für nicht überprüfen oder reparieren,/usr/local
da dieses Verzeichnis bei einer Neuinstallation von Yosemite nicht vorhanden ist./usr/local
ich eine neue Zugehörigkeit zu mir erstelle und laufeDU
. Es gibt keine/usr/local
imDU
Protokoll. Und/usr/local
gehört immer noch zu mir.