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.

Introduction

Level gère Homebrew sur macOS via un utilisateur système dédié homebrew 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 permission qui surviennent en exécutant brew en tant que root.

Si vous exécutez des actions d'automation Homebrew via Level et constatez 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 quand l'une de ces actions s'exécute pour la première fois sur un appareil :

  • Installer Homebrew

  • Installer un paquet Homebrew (qui installe Homebrew d'abord 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 d'accueil dans /Users). Il est configuré pour sudo sans mot de passe via un fichier de configuration à /etc/sudoers.d/homebrew.

ℹ️ REMARQUE : Si Homebrew était déjà installé sur l'appareil avant qu'une action Level ne s'exécute, Level reconfigure l'installation existante pour transférer la propriété à l'utilisateur homebrew. Les paquets installés sont préservés.


Exécution des commandes Homebrew

Puisque Homebrew est la propriété de l'utilisateur homebrew, les commandes brew doivent s'exécuter en tant que cet utilisateur pour fonctionner correctement.

La forme complète de la commande 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 brew standard :

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 la forme du wrapper dans les scripts et les automations de Level. Utiliser brew directement (via le wrapper) maintient la syntaxe propre et garantit que vous exécutez dans le contexte utilisateur correct.

Banneau de notification

Lors de l'exécution de brew via le wrapper de Level, vous verrez une note similaire à ceci :

NOTE: Homebrew is managed by Level on this device: https://docs.level.io/...

C'est informatif seulement. Cela confirme que le wrapper de Level est actif et que l'utilisateur homebrew gère l'installation.


FAQ

  • Pourquoi Level utilise un utilisateur dédié homebrew au lieu d'exécuter en tant que root ? Homebrew décourage explicitement d'exécuter en tant que root car il installe des logiciels dans des chemins partagés et le contexte racine cause des problèmes de permission 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.

  • J'avais Homebrew installé avant Level. Qu'est-ce qui a changé ? Level a transféré la propriété de l'installation Homebrew à l'utilisateur homebrew . Vos paquets installés sont toujours là. Les installations et mises à niveau futures passent par l'utilisateur homebrew . Si vous exécutiez brew commandes en tant que vous-même ou en tant que root avant, utilisez le wrapper ou la forme sudo -E -H -u homebrew brew à partir de maintenant.

  • Puis-je toujours installer des paquets manuellement avec brew install ? Oui, en utilisant le wrapper à /usr/local/bin/brew ou la forme complète sudo -E -H -u homebrew brew install . Direct 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 je supprime l'utilisateur homebrew ? Les actions Homebrew de Level recréent l'utilisateur et reconfigurent la propriété la prochaine fois qu'elles s'exécutent. Ne le supprimez pas si vous utilisez Level pour gérer Homebrew.

  • Puis-je utiliser Homebrew avec Level sur Apple Silicon (M1/M2/M3) Macs ? Oui. L'utilisateur homebrew et l'approche du wrapper fonctionnent sur Intel et Apple Silicon. Notez que Homebrew installe vers des chemins différents sur chaque architecture (/usr/local vs /opt/homebrew ), mais Level gère cela de manière transparente.

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