webentwicklung-frage-antwort-db.com.de

So verwenden Sie Homebrew in einem MacOS Sierra-Setup für mehrere Benutzer

Ich habe einen Mac, der von zwei Ingenieuren gemeinsam genutzt wird. Beide haben separate Benutzerkonten. Beide müssen gelegentlich brew update Und brew install... Ausführen.

Wie richte ich das ein, ohne Fehler wie /usr/local must be writable! Zu bekommen?

Ja, ich könnte UserA jedes Mal die Berechtigungen von /usr/local Übernehmen, wenn er brew verwenden möchte (und dasselbe mit UserB), aber das scheint eine Menge unnötiger Probleme zu sein .

32
Jon Gunter

Hombrew installiert Pakete in /usr/local, Sie können nichts dagegen tun, ohne viele der installierten Pakete zu beschädigen. Fügen Sie Lese- und Schreibberechtigungen für alle Benutzer wie folgt hinzu:

Sudo chmod -R +rw /usr/local

Beachten Sie, dass dies ein Systemordner ist und alle Benutzer dieselbe Brühinstallation verwenden. Ein Benutzer kann entfernen Pakete, die andere installiert haben, und so weiter. Stellen Sie also sicher, dass Sie koordinieren, um Probleme zu vermeiden.

11
Harald Nordgren

Sie können die Gruppenberechtigungen auch auf admin oder eine andere Gruppe ändern, in der sich beide Benutzer befinden:

chgrp -R admin /usr/local
chmod -R g+w /usr/local

Ursprüngliche Quelle: https://Gist.github.com/jaibeee/9a4ea6aa9d428bc77925

UPDATE:

In macOS High Sierra können Sie den Besitzer, die Gruppe oder die Berechtigungen von /usr/local Nicht ändern. Sie müssen also die Gruppe und die Berechtigungen der Unterordner ändern:

chgrp -R admin /usr/local/*
chmod -R g+w /usr/local/*

[~ # ~] Update [~ # ~] September 2018, High Sierra 10.13.6

  1. Bestimmen Sie den Pfad des Brühpräfix, dh. Der Pfad, der zum Speichern von Dateien im Zusammenhang mit der Arbeit mit Homebrew verwendet wird
  2. Stellen Sie sicher, dass alle Benutzer auf dem System, die Zugriff auf brew benötigen, zur Gruppe admin gehören
  3. Optional Hinzufügen eines Benutzers zur Admin-Gruppe wenn ein Benutzer zum Brauen Zugriff benötigt

    Benötigt Zugriff/Berechtigungen, um den Sudo Befehl zu verwenden

  4. Legen Sie den Brew-Präfixpfad so fest, dass er rekursiv der Gruppe admin gehört
  5. Legen Sie fest, dass der Brew-Präfixpfad von allen Benutzern in der Gruppe admin rekursiv beschreibbar ist
  6. Überprüfen Sie die Berechtigungen des Brühpräfixes
  7. brauen ????

echo $(brew --prefix)
echo $(groups $(whoami))
Sudo dseditgroup -o edit -a $(whoami) -t user admin
Sudo chgrp -R admin $(brew --prefix) 
Sudo chmod -R g+rwX $(brew --prefix)
ls -lah $(brew --prefix)
61
user4815162342

Hacky Workaround-Lösung für macOS Mojave 10.14

Dies ist eine bearbeitete Version von ser4815162342 s Antwort, die bei mir nicht sofort funktioniert hat.

  1. Wechseln Sie in den Systemeinstellungen zu Benutzer und Gruppen, klicken Sie auf das Sperrsymbol in der linken unteren Ecke, um die Benutzer-/Gruppenerstellung zu entsperren, und erstellen Sie dann eine neue Gruppe mit dem Namen brew-usergroup. Fügen Sie alle Benutzer, die mit brew arbeiten, zur Gruppe hinzu (wie im angehängten Screenshot von einem deutschen MacOS).

enter image description here

  1. Führen Sie im Terminal Folgendes aus:

    echo $(brew --prefix)
    echo $(groups $(whoami))
    Sudo dseditgroup -o edit -a $(whoami) -t user brew-usergroup
    Sudo chgrp -R brew-usergroup $(brew --prefix)/*
    Sudo chmod -R g+rwX $(brew --prefix)/*
    ls -lah $(brew --prefix)
    

    Beachten Sie, dass dies nicht mehr die Rechte von Brauordnern ändert (wie in anderen Antworten), sondern die Unterordner/Dateien von Brauordnern. brew install sollte nun fehlerfrei funktionieren.

7
Sliq

Das oben Genannte funktioniert einwandfrei. Wenn Sie jedoch möchten, dass neue Dateien diese Berechtigungen automatisch übernehmen, legen Sie eine ACL fest, die übernommen wird (andernfalls kann sie nur der Benutzer entfernen, der eine Flasche einschenkt). Tipps dazu finden Sie hier: https://Gist.github.com/nelstrom/498864

Als root einmal ausgeführt (vorausgesetzt, alle Benutzer der Gruppe "admin" sollten Zugriff haben):

cd /usr/local
chmod -R +a "group:admin allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" *
chgrp -R admin *
chmod -R g+rwX *
ls -lae .

das -e on ls zeigt ACLs an.

5
DrPsychick

Jede Antwort, die versucht, Berechtigungen oder Sudo zu hacken, ist falsch. Verwenden Sie Sudo nicht und geben Sie keine einzelne Brauinstallation für alle Benutzerkonten frei.

Die richtige Antwort ist, nicht mehr als eine "normale" Brühinstallation auf einem Computer zu verwenden und für alle anderen Benutzer eine lokale Version von Brühung zu installieren. Dies kann durch Erweitern eines Tarballs in ein Verzeichnis geschehen, das Ihrem Benutzer gehört, und durch Einfügen seines bin-Verzeichnisses vor Ihrem PATH. Alternativ kann man eine Git-Prüfung von zwei Quell-Repos durchführen.

Für den Git-Ansatz benötigen Sie Homebrew-Core und Brew .

Wählen Sie willkürlich mein Benutzer-Ausgangsverzeichnis aus, um diese auszuchecken:

cd $ HOME; Git-Klon [email protected]: Homebrew/homebrew-core.git; Git-Klon [email protected]: Homebrew/brew.git

und ändern Sie dann als nächstes Ihren PFAD, um unser neues Sudbehälterverzeichnis zu bevorzugen.

export PATH = $ HOME/brew/bin: $ PATH

Da es sich um eine Neuinstallation handelt, müssen Sie alle gewünschten Sudpakete (erneut) installieren.

2
jerryb

Die beste Lösung ist das Hinzufügen eines sudoers-Datensatzes, damit der nichtprivilegierte Benutzer "joe" einen beliebigen "brew" -bezogenen Befehl als administrativer Benutzer ausführen kann.

Erstellen Sie eine Datei unter /etc/sudoers.d/joe mit folgendem Inhalt:

joe ALL=(administrator) NOPASSWD: /usr/local/bin/brew

Dann können Sie brauen wie folgt ausführen:

Sudo -Hu administrator brew install <smth>
1
Sergey Papyan