Einführung
Level verwaltet Homebrew unter macOS über einen dedizierten homebrew Systembenutzers, anstatt es als root oder dem aktuell angemeldeten Benutzer ausgeführt wird. Dies folgt Homebrews eigener Empfehlung und vermeidet Berechtigungsprobleme, die entstehen, wenn brew als root.
Wenn Sie Homebrew-Automatisierungsaktionen über Level ausführen und unerwartetes Verhalten feststellen, oder wenn Sie ein macOS-Gerät verwalten, auf dem Homebrew bereits installiert war, erklärt dieser Artikel, was Level tut und wie Sie damit arbeiten können.
Der homebrew-Benutzer
Level erstellt ein homebrew Benutzerkonto automatisch erstellt, wenn eine dieser Aktionen zum ersten Mal auf einem Gerät ausgeführt wird:
Homebrew installieren
Homebrew-Paket installieren (das zuerst Homebrew installiert, falls es noch nicht vorhanden ist)
Der homebrew Benutzer ist ein Systemkonto (keine Anmelde-Shell, kein Home-Verzeichnis in /Users). Er ist für passwortloses sudo über eine Konfigurationsdatei unter /etc/sudoers.d/homebrew.
ℹ️ HINWEIS: Wenn Homebrew bereits auf dem Gerät installiert war, bevor eine Level-Aktion ausgeführt wurde, konfiguriert Level die vorhandene Installation neu, um den Besitz auf den homebrew Benutzer. Installierte Pakete bleiben erhalten.
Homebrew-Befehle ausführen
Da Homebrew dem homebrew Benutzer gehört, müssen brew-Befehle als dieser Benutzer ausgeführt werden, um korrekt zu funktionieren.
Die vollständige Befehlsform lautet:
sudo -E -H -u homebrew brew [COMMAND]
Beispiel:
sudo -E -H -u homebrew brew --version
Den Level-Wrapper verwenden
Level installiert ein Wrapper-Skript unter /usr/local/bin/brew das brew-Befehle als den homebrew Benutzer automatisch ausführt.
Mit dem Wrapper können Sie die standardmäßige brew-Syntax verwenden:
brew --version brew list brew upgrade
Der Wrapper übernimmt das sudo -E -H -u homebrew Präfix für Sie übernimmt. Verwenden Sie diese Form, wenn Sie brew-Befehle im Level-Terminal oder in Skripten ausführen.
💡 TIPP: Verwenden Sie in Level-Skripten und Automatisierungen immer die Wrapper-Form. Die Verwendung von brew direkt (über den Wrapper) hält die Syntax übersichtlich und stellt sicher, dass Sie im richtigen Benutzerkontext arbeiten.
Benachrichtigungsbanner
Wenn Sie brew über den Level-Wrapper ausführen, sehen Sie einen Hinweis ähnlich wie diesen:
NOTE: Homebrew is managed by Level on this device: https://docs.level.io/...
Dies dient nur zur Information. Es bestätigt, dass der Level-Wrapper aktiv ist und dass der homebrew Benutzer die Installation verwaltet.
Häufig gestellte Fragen
Warum verwendet Level einen dedizierten
homebrewBenutzer statt als Root zu verwenden? Homebrew rät ausdrücklich davon ab, alsrootweil es Software in gemeinsam genutzte Pfade installiert und der Root-Kontext systemweite Berechtigungsprobleme verursacht. Ein dedizierter Benutzer mit gezieltem passwortlosemsudoist das empfohlene Muster gemäß der eigenen Homebrew-Dokumentation.Ich hatte Homebrew bereits vor Level installiert. Was hat sich geändert? Level hat den Besitz der Homebrew-Installation auf den
homebrewBenutzer. Ihre installierten Pakete sind weiterhin vorhanden. Zukünftige Installationen und Aktualisierungen erfolgen über denhomebrewBenutzer. Wenn SiebrewBefehle als Sie selbst oder alsrootzuvor ausgeführt haben, verwenden Sie den Wrapper oder diesudo -E -H -u homebrew brewForm künftig verwenden.Kann ich Pakete weiterhin manuell mit
brew install? Ja, die Verwendung des Wrappers unter/usr/local/bin/brewoder die vollständigesudo -E -H -u homebrew brew installForm. Direktebrew installalsrootoder ein anderer Benutzer schlägt fehl oder verursacht Besitzkonflikte.Was passiert, wenn ich den
homebrewBenutzer? Die Level-Homebrew-Aktionen werden den Benutzer beim nächsten Ausführen neu erstellen und den Besitz neu konfigurieren. Entfernen Sie ihn nicht, wenn Sie Level zur Verwaltung von Homebrew verwenden.Kann ich Homebrew mit Level auf Apple Silicon (M1/M2/M3) Macs verwenden? Ja. Der
homebrewBenutzer- und Wrapper-Ansatz funktioniert sowohl auf Intel- als auch auf Apple Silicon-Geräten. Beachten Sie, dass Homebrew auf jeder Architektur in unterschiedliche Pfade installiert wird (/usr/localvs./opt/homebrew), aber Level übernimmt dies transparent.
