2011-01-01 11 views
23

ich die neueste Homebrew auf OS installiert X 10.6.5
jeden Befehl Ausführen generiert diese Warnung:Lauf brauen Warnungen erzeugt

/usr/local/Library/Homebrew/global.rb:34: Warnung: Unsichere Welt beschreibbare Datei/usr/local/bin in PATH, Modus 040777

Warum bekomme ich diese Warnung? und wie kann man Abhilfe schaffen?

Antwort

25

Zuerst gibt es zwei Brühbefehle, die beim Debuggen hilfreich sind. Sie sind:

$ brew doctor 
$ brew missing 

Zweitens Homebrew sagt Ihnen, dass /usr/local/bin gesetzt ist zu freizügig zu sein, in die in dieses Verzeichnis schreiben kann - ein potenzielles Sicherheitsproblem. Um dies zu beheben, können Sie Ihre Berechtigungen auf das zurücksetzen, was Homebrew beabsichtigt hat.

$ chmod 755 /usr/local/bin 

Wenn Sie einen Fehler beim Versuch, dies zu tun, kann es bedeuten, dass Ihr/usr/local Verzeichnis (und Unterverzeichnisse) durch die falschen Benutzer gehören. Wenn dies der Fall ist, würde ich in Erwägung ziehen, Ihr Verzeichnis/usr/local und reinstalling Homebrew correctly zu löschen. Alternativ können Sie den Fehler außer Kraft setzen, indem Sie den letzten Befehl mit sudo prefixing und Ihr Admin-Passwort eingeben:

$ sudo chmod 755 /usr/local/bin 
+3

ich mit Asmus darüber einig, dass '/ usr/local' Löschen eine schlechte Empfehlung. –

+1

Wenn Sie zuerst mit Homebrew beginnen, müssen Sie mit einem sauberen '/ usr/local' beginnen. Die Tatsache, dass die Berechtigungen in '/ usr/local' nicht korrekt gesetzt wurden, ist ein Zeichen dafür, dass Homebrew von vornherein falsch installiert wurde. Von vorne anzufangen ist in diesem Szenario keine schlechte Sache. –

7

Dies ist ein Sicherheitsmerkmal von Rubin, können Sie Berechtigungen für das Verzeichnis/usr/local/bin wechseln zu erhalten Löschen Sie dies durch:

sudo chmod go-w /usr/local/bin 

und geben Sie Ihr Passwort auf der Eingabeaufforderung ein.

Sie tun nicht Notwendigkeit Eigentum ändern und weder sollte/usr/local löschen, wie Ryan vorgeschlagen (das müssten Sie alles wieder aufbauen you've bisher erreicht), wird das Verzeichnis root gehören und diese ist der übliche Weg.

+0

Bei Homebrew gehört das Verzeichnis '/ usr/local' ** ** nicht zu root. Das ist der springende Punkt. Von Grund auf neu zu starten ist in diesem Szenario keine schlechte Sache, denn es ist offensichtlich, dass die Homebrew-Installation bereits irgendwie oder durch etwas verpfuscht wurde. Mit anderen Worten, es ist sehr wahrscheinlich, dass andere Variablen (wie fehlplatzierte Bibliotheken) vorhanden sind, die weitere Probleme verursachen werden. –

+1

Homebrew ist nicht die einzige Sache in/usr/local /, wenn Sie z. MacTex, mehr als ein Gigabyte TeXLife-Pakete würden dorthin gehen und Sie wollen sie nicht einfach neu installieren, nur weil Homebrew nicht funktioniert. Egal wie überzeugend die Idee von Homebrews ist,/usr/local zu besitzen, ich bevorzuge den üblichen Weg: Systemweit verfügbare Anwendungen gehören zu root. – Asmus

88

hatte ich das gleiche Problem und es nur mit diesen drei Befehlen festgelegt, etwa von Homebrew Installationsskript genommen:

sudo chgrp -R admin /usr/local 
sudo chmod -R g+rwx /usr/local 
sudo chmod -R o-w /usr/local 
+2

Hat mir auch geholfen, als ein anderes Programm (Airfoils InstantOn) die Berechtigungen vermasselt hat.Außerdem musste ich den git repo living in '/ usr/local' säubern, indem ich' cd/usr/local &&git reset --hard && git clean -d -f' – snod

+1

dank lief, die Warnmeldung fehlte ! – Vito