Ich verwende Homebrew , um Paketinstallationen auf Lion zu verwalten (Lion Server eigentlich, aber das sollte keine Rolle spielen) .
Homebrew wurde unter einem Benutzer installiert. Jetzt möchte ein anderer Benutzer ein Paket hinzufügen und Homebrew ist nicht glücklich:
$ brew update
fatal: Unable to create '/usr/local/.git/index.lock': Permission denied
Error: Failure while executing: git checkout -q master
Wird das als schlecht angesehen? Ich dachte, einer der Vorteile der Verwendung /usr/local/
für Ihre Installationen war, dass Sie nicht brauchen sudo
. Aber klar machen wir das.
Alle Benutzer, die Homebrew ändern müssten, sind Mitglieder der Administratorgruppe . Also, ich könnte chmod -R g+w /usr/local/
doch befürchten, dass dies etwas kaputt macht oder Sicherheitsprobleme schafft?!?
Rat?
$ ls -al /usr/local/.git/
total 432
drwxr-xr-x 14 ladmin admin 476 Feb 24 11:48 .
drwxrwxr-x 14 root admin 476 Feb 9 15:27 ..
-rw-r--r-- 1 ladmin admin 94 Feb 24 11:48 FETCH_HEAD
-rw-r--r-- 1 ladmin admin 23 Feb 24 11:48 HEAD
-rw-r--r-- 1 ladmin admin 41 Feb 9 15:28 ORIG_HEAD
drwxr-xr-x 2 ladmin admin 68 Feb 9 15:27 branches
-rw-r--r-- 1 ladmin admin 218 Feb 9 15:27 config
-rw-r--r-- 1 ladmin admin 73 Feb 9 15:27 description
drwxr-xr-x 12 ladmin admin 408 Feb 9 15:27 hooks
-rw-r--r-- 1 ladmin admin 200272 Feb 24 11:48 index
drwxr-xr-x 3 ladmin admin 102 Feb 9 15:27 info
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 logs
drwxr-xr-x 4 ladmin admin 136 Feb 9 15:27 objects
drwxr-xr-x 5 ladmin admin 170 Feb 9 15:27 refs
quelle
brew doctor
beschwert sich immer noch, dass zB/usr/local/include
nicht beschreibbar ist, obwohl ich manuell überprüfen kann, ob ich hier in eine Datei schreiben kann (zB mitecho "hello" > /usr/local/include/testfile
). Ich bin Mitglied der Admin-Gruppe. Irgendwelche Ideen zum Debuggen?chmod -R g+w /Library/Caches/Homebrew
sudo chown -R $(whoami) $(brew --prefix)/*
anstelle der obigen Befehle. Bekam es von hierSie können Homebrew-Berechtigungen für mehr als einen Benutzer über die Administratorgruppe oder über eine andere Benutzergruppe aktivieren. Hier ist ein leicht erweitertes Rezept, um dies zu konfigurieren:
Die Gruppe muss das lokale Homebrew-Installationsverzeichnis verwalten. So weisen Sie / usr / local zu Admin - Gruppe (oder Ihre bevorzugte Gruppe) und Gruppenschreibberechtigungen aktivieren:
Die Gruppe benötigt auch Berechtigungen für den lokalen Cache von Formeln und Quelldateien von Homebrew unter / Library / Caches / Homebrew :
Wenn Sie bei der Verwendung von Homebrew von mehreren Konten aus auf weitere ähnliche Berechtigungsprobleme stoßen, notieren Sie sich den anstößigen Pfad und versuchen Sie den gleichen Ansatz.
Leif Hanack hat eine ähnliche Lösung gebloggt , bei der er ein dediziertes Benutzergruppen- Brew für diesen Zweck erstellt und konfiguriert .
- Aktualisierung 20.08.2015
Ich habe diese Antwort kürzlich erneut verwendet, um ein Gastkonto mit Homebrew-Zugriff einzurichten. Um Cask vom zweiten Administratorkonto aus zu verwenden, musste ich auch die folgenden Befehle ausführen:
quelle
Ich wollte nur die akzeptierte Antwort kommentieren (habe aber noch keinen Ruf dafür.)
Als Benutzer von Caskroom.io würde ich außerdem empfehlen, Folgendes hinzuzufügen:
cask, eine äußerst nützliche Erweiterung für Homebrew, legt alle seine Dateien in
/opt/homebrew-cask
quelle
/opt
ich denke , Sie bedeuten/usr/local
? Wie/opt
bei den letzten OS X-Installationen nicht vorhanden, auch nach einer Homebrew-Installation./usr/local
(oder genauer$(brew --prefix)
) verschoben,/opt/homebrew-cask
sodass diese Antwort nicht mehr aktuell ist, aber gültig war, als sie geschrieben wurde. Siehe Standardspeicherort # 21603Sie müssen dem Pfad die Erlaubnis geben. Führen Sie dies in der Befehlszeile aus, und Sie können loslegen. Es hat bei mir funktioniert:
sudo chown -R $ USER / usr / local
quelle
Ich würde dafür stimmen, die Gruppenberechtigung festzulegen - und für mich scheint das genau das, wofür es da ist und sollte kein Sicherheitsproblem verursachen.
quelle
sudo chmod -R g+w /usr/local/
?