Auf macOS-Systemen mit aktiven Level-Agenten können Homebrew-Befehle einige Besonderheiten aufweisen. Dieser Artikel erklärt, warum dies geschieht und wie Sie damit arbeiten.
Der Benutzer homebrew
Level erstellt einen lokalen Benutzer namens homebrew auf Systemen, auf denen der Agent installiert ist. Dieser Benutzer besitzt bestimmte Verzeichnisse und Dateien, die für Homebrew-Vorgänge erforderlich sind. Dies ermöglicht es Level, Homebrew-Vorgänge zu überwachen und zu steuern, während die Systemintegrität erhalten bleibt.
Ausführung von Homebrew-Befehlen
Wenn Sie brew ausführen, wird der Level-Agent automatisch erkannt. Um einen Befehl mit dem homebrew-Benutzer auszuführen und der Umgebung zu ermöglichen, ordnungsgemäß zu funktionieren, verwenden Sie:
sudo -E -H -u homebrew brew [COMMAND]
Beispiele:
sudo -E -H -u homebrew brew install wgetsudo -E -H -u homebrew brew updatesudo -E -H -u homebrew brew upgradesudo -E -H -u homebrew brew list
Die Flags bedeuten:
-E: Erhält die aktuelle Umgebungsvariablen des aufrufenden Benutzers-H: Setzt das HOME-Verzeichnis auf das des Zielbenutzer (homebrew)-u homebrew: Führt den Befehl alshomebrew-Benutzer aus
Verwendung des Level-Wrappers
Der Level-Agent stellt auch einen Wrapper zur Verfügung, der sich bei /usr/local/bin/brew befindet. Dieser Wrapper kümmert sich automatisch um die erforderlichen Berechtigungen und Umgebungseinstellungen.
Sie können den Wrapper verwenden, indem Sie einfach brew aufrufen — der Wrapper wird standardmäßig verwendet:
brew update brew install wget
Der Wrapper führt die notwendigen Berechtigungen automatisch aus, sodass Sie nicht manuell sudo -E -H -u homebrew voran stellen müssen. Dies ist die empfohlene Methode für die meisten Homebrew-Vorgänge mit Level.
Benachrichtigungsbanner
Wenn Sie Homebrew-Befehle ausführen, kann eine Benachrichtigung angezeigt werden, die darauf hinweist, dass der Befehl vom Level-Agent überwacht wird. Dies ist normal und weist darauf hin, dass der Agent ordnungsgemäß funktioniert und den Befehl sieht.
Das Banner sieht in etwa so aus:
Level ist aktiv. Homebrew-Befehle werden vom Agent überwacht.
Dies ist eine Informationsmeldung und beeinträchtigt die Funktionalität oder Ergebnisse des Homebrew-Befehls nicht.
Häufig Gestellte Fragen
Warum erhalte ich eine Berechtigungsverweigerung, wenn ich einen Homebrew-Befehl ausführe? Dies könnte bedeuten, dass die Berechtigungen nicht korrekt gesetzt sind oder der Agent nicht ordnungsgemäß läuft. Versuchen Sie, den Befehl mit dem
-E -H -u homebrewPräfix wie oben beschrieben auszuführen. Wenn das Problem weiterhin besteht, wenden Sie sich an den Support.Kann ich Homebrew-Befehle ausführen, ohne den Level-Wrapper zu verwenden? Sie können die vollständige
sudo -E -H -u homebrewSyntax verwenden, aber die Verwendung des Wrappers (der standardmäßig aktiviert ist) ist einfacher und wird empfohlen.Wird der Level-Agent meine Homebrew-Befehle ändern oder unterbrechen? Nein. Der Agent überwacht Befehle nur zu Protokollierungs- und Auditzwecken. Er modifiziert weder die Befehle noch ihre Ergebnisse. Er führt sie nicht durch, es sei denn, Sie haben dies konfiguriert, und lehnt sie nicht ab.
Warum gibt es einen speziellen
homebrew-Benutzer? Dies folgt den Best Practices für Homebrew. Homebrew empfiehlt selbst,sudonicht mit Brew zu verwenden. Weitere Informationen finden Sie in Homebrew-Dokumentation.
