Passer au contenu principal

Utilisation de Homebrew avec Level sur macOS

Comment Level gère Homebrew sur macOS en utilisant un utilisateur système dédié, et comment exécuter des commandes brew sur les appareils gérés par Level.

Mis à jour aujourd’hui

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 homebrew dédié au lieu de s'exécuter en tant que root ? Homebrew déconseille explicitement de s'exécuter en tant que root car 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é avec sudo sans 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'utilisateur homebrew. Si vous exécutiez les commandes brew en tant que vous-même ou en tant que root auparavant, utilisez le wrapper ou le formulaire sudo -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/brew ou le formulaire complet sudo -E -H -u homebrew brew install. Exécuter directement brew install en tant que root ou 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 homebrew et du wrapper fonctionne sur les Macs Intel et Apple Silicon. Notez que Homebrew s'installe dans des chemins différents selon l'architecture (/usr/local vs /opt/homebrew), mais Level gère cela de manière transparente.

Avez-vous trouvé la réponse à votre question ?