Introducción
Level administra Homebrew en macOS a través de un usuario del sistema dedicado homebrew en lugar de ejecutarlo como root o el usuario actualmente conectado. Esto sigue la propia recomendación de Homebrew y evita problemas de permisos que surgen al ejecutar brew como root.
Si ejecuta acciones de automatización de Homebrew a través de Level y ve un comportamiento inesperado, o si está administrando un dispositivo macOS que ya tenía Homebrew 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 se ejecuta por primera vez una de estas acciones en un dispositivo:
Instalar Homebrew
Instalar paquete 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 sin contraseña 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 una 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 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 envoltorio de Level
Level instala un script envoltorio en /usr/local/bin/brew que ejecuta comandos de brew como el usuario homebrew automáticamente.
Con el envoltorio presente, puede usar la sintaxis estándar de brew:
brew --version brew list brew upgrade
El envoltorio se encarga del prefijo sudo -E -H -u homebrew para usted. Use este formulario cuando ejecute comandos brew en la terminal de Level o en scripts.
💡 CONSEJO: Siempre use la forma del envoltorio en los scripts y automaciones de Level. Usar brew directamente (a través del envoltorio) mantiene la sintaxis limpia y garantiza que esté ejecutando en el contexto de usuario correcto.
Banner de notificación
Al ejecutar brew a través del envoltorio de Level, verá una nota como esta:
NOTE: Homebrew is managed by Level on this device: https://docs.level.io/...
Esto es solo informativo. Confirma que el envoltorio de Level está activo y que el usuario homebrew está administrando la instalación.
FAQ
¿Por qué Level usa un usuario dedicado
homebrewen lugar de ejecutarse como root? Homebrew desalienta explícitamente ejecutarse comorootporque instala software en rutas compartidas y el contexto raíz causa problemas de permisos en todo el sistema. Un usuario dedicado consudosin contraseña dirigido es 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
homebrew. Sus paquetes instalados siguen siendo los mismos. Las instalaciones y actualizaciones futuras pasan por el usuariohomebrew. Si estaba ejecutando comandosbrewcomo usted mismo o comorootantes, use el envoltorio o el formulariosudo -E -H -u homebrew brewen adelante.¿Puedo instalar paquetes manualmente con
brew install? Sí, usando el envoltorio en/usr/local/bin/brewo el formulario completosudo -E -H -u homebrew brew install.brew installdirecto comorootu otro usuario fallará o creará conflictos de propiedad.¿Qué pasa si elimino el usuario
homebrew? Las acciones de Homebrew de Level recrearán el usuario y reconfiguraront la propiedad la próxima vez que se ejecuten. No lo elimine si está usando Level para administrar Homebrew.¿Puedo usar Homebrew con Level en Macs Apple Silicon (M1/M2/M3)? Sí. El usuario
homebrewy el enfoque del envoltorio funcionan en Intel y Apple Silicon. Tenga en cuenta que Homebrew instala en diferentes rutas en cada arquitectura (/usr/localvs/opt/homebrew), pero Level lo maneja de manera transparente.
