Introducción
Level gestiona Homebrew en macOS a través de un homebrew usuario del sistema en lugar de ejecutarlo como root o el usuario que ha iniciado sesión en ese momento. Esto sigue la propia recomendación de Homebrew y evita los problemas de permisos que surgen al ejecutar brew como root.
Si ejecuta acciones de automatización de Homebrew a través de Level y observa un comportamiento inesperado, o si está administrando un dispositivo macOS en el que Homebrew ya estaba instalado, este artículo explica qué hace Level y cómo trabajar con él.
El usuario homebrew
Level crea una cuenta de usuario homebrew automáticamente cuando cualquiera de estas acciones se ejecuta por primera vez en un dispositivo:
Instalar Homebrew
Instalar paquete de Homebrew (que instala Homebrew primero si aún no está presente)
El usuario homebrew es una cuenta del sistema (sin shell de inicio de sesión, sin directorio de inicio en /Users). Está configurado para sudo a través de un archivo de configuración en /etc/sudoers.d/homebrew.
ℹ️ NOTA: Si Homebrew ya estaba instalado en el dispositivo antes de que se ejecutara alguna acción de Level, Level reconfigura la instalación existente para transferir la propiedad al usuario homebrew Los paquetes instalados se conservan.
Ejecución de comandos de Homebrew
Dado que Homebrew es propiedad del usuario homebrew los comandos de brew deben ejecutarse como ese usuario para funcionar correctamente.
La forma completa del comando es:
sudo -E -H -u homebrew brew [COMMAND]
Ejemplo:
sudo -E -H -u homebrew brew --version
Uso del wrapper de Level
Level instala un script wrapper en /usr/local/bin/brew que ejecuta los comandos de brew como el usuario homebrew automáticamente.
Con el wrapper instalado, puede usar la sintaxis estándar de brew:
brew --version brew list brew upgrade
El wrapper gestiona el prefijo sudo -E -H -u homebrew automáticamente. Use esta forma al ejecutar comandos de brew en la terminal de Level o en scripts.
💡 CONSEJO: Utilice siempre la forma con wrapper en los scripts y automatizaciones de Level. Usar brew directamente (a través del wrapper) mantiene la sintaxis limpia y garantiza que se ejecute en el contexto de usuario correcto.
Banner de notificación
Al ejecutar brew a través del wrapper de Level, verá una nota similar a esta:
NOTE: Homebrew is managed by Level on this device: https://docs.level.io/...
Es solo informativo. Confirma que el wrapper de Level está activo y que el usuario homebrew está gestionando la instalación.
Preguntas frecuentes
¿Por qué Level usa un usuario dedicado
homebrewen lugar de ejecutarse como root? Homebrew desaconseja explícitamente ejecutarse comorootporque instala software en rutas compartidas y el contexto de root genera problemas de permisos en todo el sistema. Un usuario dedicado consudoes el patrón recomendado según la propia documentación de Homebrew.Tenía Homebrew instalado antes de Level. ¿Qué cambió? Level transfirió la propiedad de la instalación de Homebrew al usuario
homebrewLos paquetes instalados siguen ahí. Las futuras instalaciones y actualizaciones se realizarán a través del usuariohomebrewSi estaba ejecutando comandosbrewcomandos como usted mismo o comorootantes, use el wrapper o la formasudo -E -H -u homebrew brewde ahora en adelante.¿Puedo seguir instalando paquetes manualmente con
brew install? Sí, usar el wrapper en/usr/local/bin/brewo la forma completasudo -E -H -u homebrew brew installLa forma directabrew installcomorooto a otro usuario fallará o generará conflictos de propiedad.¿Qué ocurre si elimino el usuario
homebrew¿usuario? Las acciones de Homebrew de Level recrearán el usuario y reconfigurarán la propiedad la próxima vez que se ejecuten. No lo elimine si está usando Level para gestionar Homebrew.¿Puedo usar Homebrew con Level en Macs con Apple Silicon (M1/M2/M3)? Sí. El enfoque de usuario
homebrewEl enfoque de usuario y wrapper funciona tanto en Intel como en Apple Silicon. Tenga en cuenta que Homebrew se instala en rutas diferentes según la arquitectura (/usr/localvs/opt/homebrew), pero Level gestiona esto de forma transparente.
