Level gère Homebrew sur macOS via un utilisateur système homebrew dédié plutôt que de l'exécuter en tant que root ou l'utilisateur actuellement connecté. Cela suit la propre recommandation de Homebrew et évite les problèmes de permissions qui surviennent lors de l'exécution de brew en tant que root.
Si vous exécutez des actions d'automatisation Homebrew via Level et voyez un comportement inattendu, ou si vous gérez un appareil macOS qui avait déjà Homebrew installé, cet article explique ce que Level fait et comment travailler avec.
L'Utilisateur homebrew
Level crée un compte utilisateur homebrew automatiquement lorsque l'une de ces actions s'exécute pour la première fois sur un appareil :
Installer Homebrew
Installer un Package Homebrew (qui installe d'abord Homebrew s'il n'est pas déjà présent)
L'utilisateur homebrew est un compte système (pas de shell de connexion, pas de répertoire personnel dans /Users). Il est configuré pour sudo sans mot de passe via un fichier de configuration à /etc/sudoers.d/homebrew.
ℹ️ NOTE : Si Homebrew était déjà installé sur l'appareil avant que toute action Level s'exécute, Level reconfigure l'installation existante pour transférer la propriété à l'utilisateur homebrew. Les packages installés sont préservés.
Exécution de Commandes Homebrew
Puisque Homebrew est détenu par l'utilisateur homebrew, les commandes brew doivent s'exécuter en tant que cet utilisateur pour fonctionner correctement.
Le formulaire de commande complet est :
sudo -E -H -u homebrew brew [COMMAND]
Exemple :
sudo -E -H -u homebrew brew --version
Utilisation du Wrapper Level
Level installe un script wrapper à /usr/local/bin/brew qui exécute les commandes brew en tant que l'utilisateur homebrew automatiquement.
Avec le wrapper en place, vous pouvez utiliser la syntaxe standard de brew :
brew --version brew list brew upgrade
Le wrapper gère le préfixe sudo -E -H -u homebrew pour vous. Utilisez cette forme lors de l'exécution de commandes brew dans le terminal de Level ou dans les scripts.
💡 CONSEIL : Utilisez toujours le formulaire wrapper dans les scripts et les automatisations de Level. L'utilisation directe de brew (via le wrapper) garde la syntaxe propre et garantit que vous exécutez dans le contexte utilisateur correct.
Bannière de Notification
Lors de l'exécution de brew via le wrapper Level, vous verrez une note similaire à celle-ci :
NOTE: Homebrew is managed by Level on this device: https://docs.level.io/...
Ceci est uniquement informatif. Cela confirme que le wrapper de Level est actif et que l'utilisateur homebrew gère l'installation.
FAQ
Pourquoi Level utilise-t-il un utilisateur
homebrewdédié au lieu de s'exécuter en tant que root ? Homebrew déconseille explicitement de s'exécuter en tant querootcar il installe des logiciels dans des chemins partagés et le contexte root cause des problèmes de permissions dans tout le système. Un utilisateur dédié avecsudosans mot de passe ciblé est le modèle recommandé selon la propre documentation de Homebrew.Homebrew était installé avant Level. Qu'a changé ? Level a transféré la propriété de l'installation Homebrew à l'utilisateur
homebrew. Vos packages installés sont toujours présents. Les installations et mises à niveau futures se font via l'utilisateurhomebrew. Si vous exécutiez les commandesbrewen tant que vous-même ou en tant querootauparavant, utilisez le wrapper ou le formulairesudo -E -H -u homebrew brewà l'avenir.Puis-je toujours installer des packages manuellement avec
brew install? Oui, en utilisant le wrapper à/usr/local/bin/brewou le formulaire completsudo -E -H -u homebrew brew install. Exécuter directementbrew installen tant querootou un autre utilisateur échouera ou créera des conflits de propriété.Que se passe-t-il si j'efface l'utilisateur
homebrew? Les actions Homebrew de Level recréront l'utilisateur et reconfigureront la propriété la prochaine fois qu'elles s'exécuteront. Ne l'effacez pas si vous utilisez Level pour gérer Homebrew.Puis-je utiliser Homebrew avec Level sur les Macs Apple Silicon (M1/M2/M3) ? Oui. L'approche de l'utilisateur
homebrewet du wrapper fonctionne sur les Macs Intel et Apple Silicon. Notez que Homebrew s'installe dans des chemins différents selon l'architecture (/usr/localvs/opt/homebrew), mais Level gère cela de manière transparente.
