BREAKING CHANGE: hyprland-qtutils package renamed to hyprland-guiutils Changes: - Updated Hyprland version from v0.51.1 to v0.52.1 - Renamed hyprland-qtutils.sh to hyprland-guiutils.sh to match upstream repository rename - Updated all environment variable references from HYPRLAND_QTUTILS_TAG to HYPRLAND_GUIUTILS_TAG - Updated repository URL from hyprwm/hyprland-qtutils to hyprwm/hyprland-guiutils Modified files: - install-scripts/hyprland.sh: Updated Hyprland tag to v0.52.1 - install-scripts/hyprland-qtutils.sh: Renamed to hyprland-guiutils.sh * Updated all internal references and log file names * Changed repository clone URL to hyprland-guiutils * Renamed array variable from qtutils to guiutils - hypr-tags.env: Updated HYPRLAND_TAG to v0.52.1 and renamed HYPRLAND_QTUTILS_TAG to HYPRLAND_GUIUTILS_TAG - install.sh: Updated export statement to use HYPRLAND_GUIUTILS_TAG - refresh-hypr-tags.sh: Updated tag name and repository mapping - update-hyprland.sh: * Updated component list to reference hyprland-guiutils * Updated default tags to use HYPRLAND_GUIUTILS_TAG * Updated export statements in all relevant functions * Updated repository mapping array * Updated command-line argument parsing for guiutils - dry-run-build.sh: Updated component list and example usage - Debian-Hyprland-Install-Upgrade.md: Updated documentation with new tag name and skip examples - Debian-Hyprland-Install-Upgrade.es.md: Updated Spanish documentation with new tag name - WARP.md: Updated module list documentation Rationale: As of Hyprland 0.52.1, the upstream hyprland-qtutils repository has been renamed to hyprland-guiutils. This update ensures compatibility with the latest Hyprland release and aligns the build scripts with the current upstream repository structure. References: - Upstream repository: https://github.com/hyprwm/hyprland-guiutils
12 KiB
Guía de Instalación y Actualización de Debian-Hyprland
Esta guía cubre los flujos de instalación y actualización mejorados para el proyecto Debian-Hyprland de KooL, incluyendo nuevas funciones de automatización, gestión centralizada de versiones y capacidades de dry-run.
Tabla de Contenidos
- Resumen
- Nuevas Funciones
- Gestión Central de Versiones
- Métodos de Instalación
- Flujos de Actualización
- Pruebas con Dry-Run
- Gestión de Logs
- Uso Avanzado
- Solución de Problemas
Resumen
El proyecto Debian-Hyprland ahora incluye herramientas de automatización y gestión mejoradas, manteniendo la compatibilidad con el script original install.sh. Las principales adiciones son:
- Gestión centralizada de versiones mediante
hypr-tags.env - Orden automático de dependencias para los requisitos de Hyprland 0.51.x
- Pruebas de compilación con dry-run sin modificar el sistema
- Actualizaciones selectivas de componentes con
update-hyprland.sh - Obtención automática de últimas versiones desde GitHub
Nuevas Funciones
install.sh mejorado
El script original ahora:
- Unifica versiones: Lee
hypr-tags.envy exporta variables de versión a todos los módulos - wayland-protocols automático: Instala wayland-protocols desde el código fuente (≥1.45) antes de Hyprland
- Orden robusto de dependencias: Garantiza la secuencia correcta de requisitos
Nuevos Scripts
update-hyprland.sh
Herramienta enfocada para gestionar y compilar solo el stack de Hyprland:
chmod +x ./update-hyprland.sh
./update-hyprland.sh --help # Ver todas las opciones
dry-run-build.sh
Herramienta de pruebas que compila componentes sin instalarlos:
chmod +x ./dry-run-build.sh
./dry-run-build.sh --help # Ver todas las opciones
wayland-protocols-src.sh
Módulo que compila wayland-protocols desde el origen para satisfacer los requisitos de Hyprland 0.51.x.
Gestión Central de Versiones
hypr-tags.env
Archivo con etiquetas de versión para todos los componentes de Hyprland:
# Versiones actuales (ejemplo)
HYPRLAND_TAG=v0.51.1
AQUAMARINE_TAG=v0.9.3
HYPRUTILS_TAG=v0.8.2
HYPRLANG_TAG=v0.6.4
HYPRGRAPHICS_TAG=v0.1.5
HYPRWAYLAND_SCANNER_TAG=v0.4.5
HYPRLAND_PROTOCOLS_TAG=v0.6.4
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
HYPRLAND_GUIUTILS_TAG=v0.1.4
WAYLAND_PROTOCOLS_TAG=1.45
Prioridad de Sobrescritura de Versiones
- Variables de entorno (exportadas)
- Valores en el archivo
hypr-tags.env - Valores por defecto en cada módulo
Métodos de Instalación
Método 1: Instalación Completa Original
# Instalación estándar con todos los componentes
chmod +x install.sh
./install.sh
Ahora, este método automáticamente:
- Carga versiones desde
hypr-tags.env - Instala wayland-protocols desde el origen antes de Hyprland
- Mantiene el orden correcto de dependencias
Método 2: Solo el Stack de Hyprland
# Instala solo Hyprland y componentes esenciales
./update-hyprland.sh --install
Método 3: Instalación Nueva con Últimas Versiones
# Obtiene últimas versiones de GitHub e instala
./update-hyprland.sh --fetch-latest --install
Método 4: Instalación con Preset
# Usa un preset para elecciones automáticas
./install.sh --preset ./preset.sh
Flujos de Actualización
Enlace rápido: Actualización 0.49/0.50.x → 0.51.1
Actualizar a la Última Versión de Hyprland
Opción A: Descubrimiento Automático
# Obtiene las últimas etiquetas e instala
./update-hyprland.sh --fetch-latest --install
Opción B: Versión Específica
# Establece una versión específica de Hyprland
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
Opción C: Probar Antes de Instalar
# Prueba la compilación primero, luego instala si es exitoso
./update-hyprland.sh --fetch-latest --dry-run
# Si es exitoso:
./update-hyprland.sh --install
Actualizar Componentes Individuales
# Actualiza solo librerías núcleo (a menudo necesario para nuevas versiones de Hyprland)
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
# Actualiza aquamarine específicamente
./update-hyprland.sh --set AQUAMARINE=v0.9.3 --install --only aquamarine
Actualizaciones Selectivas
# Instalar todo excepto los componentes Qt
./update-hyprland.sh --install --skip hyprland-qt-support,hyprland-guiutils
# Instalar solo componentes específicos
./update-hyprland.sh --install --only hyprland,aquamarine
Actualización: 0.49/0.50.x ➜ 0.51.1
Si actualmente estás en Hyprland 0.49 o 0.50.x, puedes actualizar directamente a 0.51.1 sin una reinstalación completa.
Ruta recomendada:
# Asegura que hypr-tags.env apunte a la versión objetivo (omitir si ya es v0.51.1)
./update-hyprland.sh --set HYPRLAND=v0.51.1
# Actualiza Hyprland (los prerrequisitos se incluyen y ordenan automáticamente)
./update-hyprland.sh --install --only hyprland
Notas:
- El comando garantiza y ejecuta, según sea necesario: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine y luego hyprland.
- No es necesario usar install.sh para esta actualización, a menos que también quieras instalar/actualizar módulos opcionales (p. ej., SDDM, Bluetooth, Thunar, AGS, dotfiles) o estés recuperándote de una instalación fallida/parcial.
- Opcional: agrega --with-deps para reinstalar dependencias primero:
./update-hyprland.sh --with-deps --install --only hyprland
- Puedes hacer un dry-run primero para validar:
./update-hyprland.sh --dry-run --only hyprland
Pruebas con Dry-Run
¿Por qué usar Dry-Run?
- Probar compatibilidad de compilación antes de instalar
- Validar combinaciones de versiones
- Depurar problemas de compilación sin cambios en el sistema
- Integración en CI/CD
Uso Básico de Dry-Run
# Probar la configuración actual de versiones
./update-hyprland.sh --dry-run
# Probar con últimas versiones de GitHub
./update-hyprland.sh --fetch-latest --dry-run
# Probar una versión específica
./update-hyprland.sh --set HYPRLAND=v0.51.1 --dry-run
Pruebas Avanzadas con Dry-Run
# Formato alternativo de resumen
./update-hyprland.sh --via-helper
# Probar con instalación de dependencias
./dry-run-build.sh --with-deps
# Probar solo componentes específicos
./dry-run-build.sh --only hyprland,aquamarine
Limitaciones de Dry-Run
- Las dependencias se instalan: apt se ejecuta para asegurar la compilación
- Requisitos de pkg-config: Algunos componentes necesitan requisitos instalados en el sistema
- Sin cambios en el sistema: No instala archivos en /usr/local o /usr
Gestión de Logs
Ubicación de Logs
Todas las actividades de construcción generan logs con sello de tiempo en:
Install-Logs/
├── 01-Hyprland-Install-Scripts-YYYY-MM-DD-HHMMSS.log # Log principal de instalación
├── install-DD-HHMMSS_module-name.log # Logs por módulo
├── build-dry-run-YYYY-MM-DD-HHMMSS.log # Resumen de dry-run
└── update-hypr-YYYY-MM-DD-HHMMSS.log # Resumen de actualización
Análisis de Logs
# Ver el log de instalación más reciente
ls -t Install-Logs/*.log | head -1 | xargs less
# Buscar errores en un módulo específico
grep -i error Install-Logs/install-*hyprland*.log
# Ver resumen de dry-run
cat Install-Logs/build-dry-run-*.log
Retención de Logs
- Los logs se acumulan con el tiempo para referencia histórica
- Se recomienda limpieza manual periódica:
# Mantener solo logs de los últimos 30 días
find Install-Logs/ -name "*.log" -mtime +30 -delete
Uso Avanzado
Gestión de Versiones
Copia de Seguridad y Restauración
# Las etiquetas se respaldan automáticamente cuando cambian
# Restaurar la copia más reciente
./update-hyprland.sh --restore --dry-run
Múltiples Conjuntos de Versiones
# Guardar configuración actual
cp hypr-tags.env hypr-tags-stable.env
# Probar versiones experimentales
./update-hyprland.sh --fetch-latest --dry-run
# Restaurar estable si es necesario
cp hypr-tags-stable.env hypr-tags.env
Integración con el Entorno
PKG_CONFIG_PATH personalizado
# Asegurar que /usr/local tenga prioridad
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:${PKG_CONFIG_PATH:-}"
./update-hyprland.sh --install
Compilaciones en Paralelo
# Controlar el paralelismo (por defecto: todos los núcleos)
export MAKEFLAGS="-j4"
./update-hyprland.sh --install
Flujo de Trabajo de Desarrollo
Probar Nuevos Lanzamientos
# 1. Crear entorno de pruebas
cp hypr-tags.env hypr-tags.backup
# 2. Probar nueva versión
./update-hyprland.sh --set HYPRLAND=v0.52.0 --dry-run
# 3. Instalar si es exitoso
./update-hyprland.sh --install
# 4. Revertir si hay problemas
./update-hyprland.sh --restore --install
Desarrollo de Componentes
# Solo instalar dependencias
./update-hyprland.sh --with-deps --dry-run
# Pruebas manuales de módulo
DRY_RUN=1 ./install-scripts/hyprland.sh
# Ver logs de un módulo específico
tail -f Install-Logs/install-*hyprland*.log
Solución de Problemas
Problemas Comunes
Falla de Configuración con CMake
Síntomas: "Package dependency requirement not satisfied"
Soluciones:
# Instalar requisitos faltantes
./update-hyprland.sh --install --only wayland-protocols-src,hyprutils,hyprlang
# Limpiar caché de compilación
rm -rf hyprland aquamarine hyprutils hyprlang
# Reintentar instalación
./update-hyprland.sh --install --only hyprland
Errores de Compilación
Síntomas: "too many errors emitted"
Soluciones:
# Actualizar dependencias núcleo primero
./update-hyprland.sh --fetch-latest --install --only hyprutils,hyprlang
# Revisar incompatibilidades de API en logs
grep -A5 -B5 "error:" Install-Logs/install-*hyprland*.log
Etiqueta No Encontrada
Síntomas: "Remote branch X not found"
Soluciones:
# Ver etiquetas disponibles
git ls-remote --tags https://github.com/hyprwm/Hyprland
# Usar etiqueta confirmada
./update-hyprland.sh --set HYPRLAND=v0.50.1 --install
Pasos de Depuración
-
Verificar compatibilidad del sistema:
# Verificar versión de Debian cat /etc/os-release # Asegurar deb-src habilitado grep -E "^deb-src" /etc/apt/sources.list -
Verificar entorno:
# Ver etiquetas actuales cat hypr-tags.env # Probar dry-run primero ./update-hyprland.sh --dry-run --only hyprland -
Analizar logs:
# Errores más recientes grep -i "error\|fail" Install-Logs/*.log | tail -20 # Problemas por módulo ls -la Install-Logs/install-*[component]*.log
Obtener Ayuda
- Revisar logs: Consulte siempre Install-Logs/ para detalles
- Probar dry-run: Valide antes de instalar
- Soporte de la comunidad: Envíe issues con extractos de logs
- Documentación: Consulte README.md del proyecto para requisitos base
Migración desde Versiones Previas
Instalaciones Existentes
Las nuevas herramientas funcionan junto a instalaciones existentes:
# Actualizar instalación existente
./update-hyprland.sh --install
# Probar sin afectar el sistema actual
./update-hyprland.sh --dry-run
Convertir a Gestión por Etiquetas
# Las versiones actuales se guardan en hypr-tags.env automáticamente
# Verificar con:
cat hypr-tags.env
# Modificar versiones según necesidad:
./update-hyprland.sh --set HYPRLAND=v0.51.1
El flujo mejorado ofrece mayor control, capacidad de prueba y automatización, manteniendo la compatibilidad total con el proceso de instalación original.