Frage

Ich bin mit HomeBrew für mein port benötigt (scheint ein bisschen "sauberer" als MacPorts).

Kann ich die Installation ohne sudoing (was großartig ist), aber der Mann Verlinkung Schritt scheint zu erfordern (/usr/local/share/man/man3 ist Eigentum von root).
Ein guide Ich fand schlägt vor, die ich rekursiv chown /usr/local by doing

sudo chown -R `whoami` /usr/local

Dies ist sicher...oder ist es eine Schlechte Idee,™?

Auch:sind meine Berechtigungen korrekt?

$ pwd
/usr/local/share/man
$ ls -lah
total 32
drwxrwxr-x    8 root  staff   272B  4 Set 11:02 .
drwxrwxr-x    9 root  staff   306B 10 Set 11:27 ..
drwxr-xr-x    3 root  wheel   102B  4 Ago  2009 de
drwxrwxr-x  163 root  staff   5,4K 10 Set 11:27 man1
drwxr-xr-x   11 root  wheel   374B 10 Set 11:27 man3
drwxr-xr-x    7 ago   staff   238B 10 Set 11:39 man5
drwxr-xr-x   11 ago   staff   374B 10 Set 11:39 man7
-rw-r--r--    1 root  staff    13K  4 Set 11:02 whatis
War es hilfreich?

Lösung

Es ist normalerweise besser, die Berechtigungen so streng wie möglich zu halten. Halten /usr/local gehört root bedeutet, dass nur verarbeitet, die als root/sudo (Oder fragen Sie nach dem Dialogfeld "Apple Authorization) nach Administrator.) Kann in diesen Bereich schreiben. Ein Prozess -Download muss Sie daher nach einem Kennwort fragen, bevor Sie dort Dateien beschädigen.

Aber wie Sie sagen, es wird das Hinzufügen neuer Programme schwieriger.

Ich bin in Ordnung mit dem Laufen sudo, wenn Sie Dinge seltener installieren als sie ausführen, aber Sie müssen darauf vertrauen, dass der Build -Prozess nichts ändert, was er sollte.

Wenn Sie sudo vermeiden möchten, würde ich ein Homebrew installieren ~/usr/local und ändern Sie Ihren Weg, Ihren Menschenpfad usw., um die darunter liegenden Verzeichnisse einzubeziehen.

Ein besserer Weg ist es, einen anderen Benutzer zu erstellen - z. homebrew und erstellen Sie ein Verzeichnis, das diesem Benutzer gehört. Dann dort mit mithilfe von installieren sudo -U homebrew. Andere Benutzer haben den Vorteil, dass sie keine anderen Dateien überschreiben können, da sie nicht als als aus ausgeführt werden root und andere Programme können sich nicht auf das Homebrew auswirken. (Ich stelle fest, dass die Homebrew -FAQ schlägt diesen neuen Benutzer vor, wenn Sie sich in einer "Multi -Benutzer -Umgebung" befinden. Ich würde sagen, dass jeder UNIX -Gerät einschließlich MacOS eine Multi -Benutzer -Umgebung ist).

Wie das Homebrew -Wiki sagt, dass die Rezepte nicht alle Fälle finden /usr/local und ersetzen Sie sie durch das gewählte Verzeichnis, von dem ich vermute, dass wir festhalten /usr/local.

Andere Tipps

Ich benutze Homebrew-auch und kann bestätigen, es ist völlig sicher.Unter Angabe der Installation auf der offiziellen Seite Homebrew FAQ:

Tun Sie sich einen gefallen und Holen /usr/local

  1. Es ist einfacher
    /usr/local/bin bereits in Ihrem PATH.

  2. Es ist einfacher
    Tonnen von build-Skripte brechen, wenn Ihre Abhängigkeiten nicht in entweder /usr oder /usr/local.Wir lösen das für Homebrew-Formeln (obwohl wir nicht immer der test für Sie), aber Sie werden feststellen, dass viele RubyGems-und Python-setup-Skripts zu brechen, das ist etwas, was außerhalb unserer Kontrolle.

  3. Es ist sicher
    Apple erfüllt die POSIX-und Links in diesem Verzeichnis nach uns.Was bedeutet es gibt keine /usr/local standardmäßig Verzeichnis, so gibt es keine Notwendigkeit zu sorgen über messing up vorhandenen tools.

Wenn Sie planen, um gems zu installieren, die abhängig von Braut dann sparen Sie sich einen Haufen ärger und zu installieren /usr/local!

Es ist nicht trivial zu sagen Edelstein zu suchen, die in nicht-standard-Verzeichnisse für Header und dylibs.Wenn Sie wählen Sie /usr/local, alles "funktioniert einfach!"

Ich werde nur hinzufügen, dass Dinge zu tun, wie Wurzel ist eine sehr schlechte Idee, so chowning /usr/local nicht nur scheint mir vernünftig (es ist nicht ein system dir auf OSX), aber sane.

Ihre Berechtigungen nicht korrekt sind (noch) nicht.Führen Sie einfach den Befehl Sie aufgelistet, und Sie re gonna be fine.

Wenn Sie haben anderen Probleme, denken Sie daran, die brew doctor können Sie helfen!

Wenn Sie ein Homebrew verwenden, sollten Sie die Schreibberechtigung an eine bestimmte Gruppe geben (entweder admin oder staff), sodass die Dateien zwischen Benutzern geteilt werden können, die sich in dieser Gruppe befinden.

Zum Beispiel:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

Dann weisen Sie den Benutzern zu, die Zugriff haben sollten brew Befehl an diese Gruppe (Überprüfen Sie Ihre Gruppen über: id -Gn).

Dann bei der Arbeit mit brew, Führen Sie es nicht mit sudo.

Wenn Sie noch ein Problem mit einer Erlaubnis haben, laufen Sie brew doctor beim Problem zu beheben.

Für das, was es wert ist, /usr/local wird nicht als "System" -Fordner von OS X angesehen, und auf einer brandneuen Schneelopard -Installation ist dieser Ordner leer.

Jedes Root-Besitz in diesem Ordner ist ein Ergebnis von sudo make install auf einer anderen Software oder geben Sie Ihr Passwort nach dem Doppelklicken auf a .pkg das will Sachen hineinwerfen /usr/local.

Besitzen /usr/local hat seit über einem Jahr "für mich" auf 2 Maschinen gearbeitet.

Eine Gotcha ist, dass wenn Sie MySQL installiert haben (ohne Homebrew) und seine Dateien zu korrigieren, wahrscheinlich keine Datenbanken mehr sehen kann .))

Wie in Homebrew 1.0.0:

Homebrew muss nicht mehr Eigentum an /usr /lokal haben. Wenn Sie sich wünschen, können Sie /usr /lokal zu seinem Standardbesitz mit: sudo chown root: rad /usr /local zurückkehren

Ich denke, es ist in Ordnung für Benutzer zu haben Berechtigungen schreiben zu /usr/local - Schließlich bedeutet das, dass Sie nicht verwenden sudo auf jedem Build -Skript. Ich mag die Idee eines gewöhnlichen Benutzers nicht besitzen /usr/local. Ich würde es vorziehen, Wurzel- (oder ähnliche) eigene eigene zu haben /usr/local, aber ändern Sie die Berechtigungen, damit Benutzer (oder zumindest eine privilegierte Gruppe) darauf schreiben können. Das scheint der konzeptionell korrekte Ansatz zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit apple.stackexchange
scroll top