mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2026-02-05 09:40:14 +01:00
* Testing build from debian packages
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: BUILD_METHOD_OPTIONS.md
new file: CHANGES_SUMMARY.md
new file: GIT_STATUS.md
new file: INSTALL_METHOD_GUIDE.md
new file: QUICK_START.txt
modified: install.sh
* Fix package installation: skip plugins and debug symbols by default, improve dependency handling
* Add comprehensive troubleshooting guide for package installation issues
* Fix package installation path handling: use full paths instead of cd to preserve working directory
* Removed files related to debian pacakge building
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
deleted: BUILD_METHOD_OPTIONS.md
deleted: GIT_STATUS.md
deleted: INSTALL_METHOD_GUIDE.md
deleted: PACKAGE_INSTALL_TROUBLESHOOTING.md
deleted: QUICK_START.txt
* Ported ubuntu quickshell install script to debian
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
new file: install-scripts/quickshell.sh
* Forgot to add quickshell as install option
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install.sh
* Added missing depdendencies to debian quickshell
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Fixing QML import pathing
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Adding shim for missing QML properies
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Added check for debian trixie in quickshell install
Trixe doesn't support overview seems like the QT libs are too old
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/quickshell.sh
* Fixed typo in script
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: refresh-hypr-tags.sh
* libmuparser-dev is now needed
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/00-dependencies.sh
modified: install-scripts/hyprland.sh
* Adding hyprwire depdency
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hypr-tags.env
new file: install-scripts/hyprwire.sh
modified: install.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updating hyprwire build order
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixing script permissions
* fixing hyprwire build error
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Still fixing hyprwire build errors
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Fixing SED error. (I Hate sed)
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Still getting append errors trying another fix
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Updated tags for 0.53.0
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: ../hypr-tags.env
modified: hyprland.sh
* Fixing build error on hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprland.sh
* Still getting build errors with hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* More build errors to fix
On branch development
Your branch is ahead of 'origin/development' by 1 commit.
(use "git push" to publish your local commits)
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixind SED error
* Hyprland tag set to 52.2
* Scripts has hardcoded versions vs. pulling hypr-env
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/aquamarine.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/wayland-protocols-src.sh
* Fixing update-hyprland to support tags
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprutils.sh
modified: update-hyprland.sh
* Fixing update-hyprland (again) to use env-tags
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: update-hyprland.sh
* Fixing update-hyprland
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: update-hyprland.sh
* Trying to get trixie to build
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Updated README re: NVIDIA drivers & HL 0.52.2+ on Trixie
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: README.md
* UPD: Before ubunmtu was out-of-date, now can run HL dots
previsously ubuntu was older HL. Now it's up to date and can
also run current dotfiles. Removed old statement saying ubuntu could not
run current dotfiles.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: README.md
* Pinned version to 52.2 for debian stable support
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
deleted: CHANGES_SUMMARY.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: hypr-tags.env
new file: hypr-tags.env-v.053
modified: update-hyprland.sh
* Fixed update-hyprland refresh-hypr-tags --force-override
It now assumes --fetch-latest
Small formatting fixes
Now shows version to upgrade too and pause to allow review
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: dry-run-build.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Fixing build scrpt to work onm debian stable
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland-guiutils.sh
* Added selectable shim for hyprwire to allow building on trixie
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprwire.sh
* Fixed hyprland 0.53 build for trixie found bug in xdph script
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: hyprland.sh
modified: xdph.sh
modified: ../install.sh
modified: ../update-hyprland.sh
* Major Update Debian trixie 0.53.1 support new build flags
Trixie needs small patches to build vs. testing+
Script now detects that. But some debian based distros might mask name
There is a flag `--force-trixie` to include the fixes
Updated the Install-Upgrade documents with the specifics
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOGS.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: README.md
modified: hypr-tags.env
deleted: hypr-tags.env-v.053
modified: install.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Updated CHANGELOG with note about debian stable support
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
renamed: CHANGELOGS.md -> CHANGELOG.md
* Sync README/CHANGELOG with main
* Updated CHANGELOG and README re: debian trixie upgrades to Forky+
You must recompile Hyprland
`update-hyprland --install --with-deps`
Otherwise hyprland won't start
You will be returned to the login manager
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: README.md
* Fixed install script to pull current headers for versioning
Fastfetch was showing wrong version duo to header files from 52.2
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Improved syncing versioning
Gets commit hash, tag, date, commit count, dirty state from hyprland --version.
Pulls library versions from hyprland --version first, and falls back to hypr-tags.env if missing.
Writes those values into /usr/include/hyprland/src/version.h.
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/hyprland.sh
* Fixed ver mismatch in FF Pinned stable to 53.2 create build dir
Now the code will compile in build directory vs. base directory
Easier to clean up
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
modified: README.md
modified: hypr-tags.env
modified: install-scripts/Global_functions.sh
modified: install-scripts/ags.sh
modified: install-scripts/aquamarine.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hypridle.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprlock.sh
modified: install-scripts/hyprpolkitagent.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/quickshell.sh
modified: install-scripts/rofi-wayland.sh
modified: install-scripts/wayland-protocols-src.sh
modified: install-scripts/xdph.sh
modified: install-scripts/xkbcommon.sh
modified: refresh-hypr-tags.sh
modified: update-hyprland.sh
* Moved source and builds to build dir
Cleanup is now just removing the build directory and install-logs
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: install-scripts/Global_functions.sh
modified: install-scripts/ags.sh
modified: install-scripts/aquamarine.sh
modified: install-scripts/dotfiles-branch.sh
modified: install-scripts/gtk_themes.sh
modified: install-scripts/hyprcursor.sh
modified: install-scripts/hyprgraphics.sh
modified: install-scripts/hypridle.sh
modified: install-scripts/hyprland-guiutils.sh
modified: install-scripts/hyprland-protocols.sh
modified: install-scripts/hyprland-qt-support.sh
modified: install-scripts/hyprland.sh
modified: install-scripts/hyprlang.sh
modified: install-scripts/hyprlock.sh
modified: install-scripts/hyprpolkitagent.sh
modified: install-scripts/hyprtoolkit.sh
modified: install-scripts/hyprutils.sh
modified: install-scripts/hyprwayland-scanner.sh
modified: install-scripts/hyprwire.sh
modified: install-scripts/quickshell.sh
modified: install-scripts/rofi-wayland.sh
modified: install-scripts/rog.sh
modified: install-scripts/sddm_theme.sh
modified: install-scripts/swww.sh
modified: install-scripts/wayland-protocols-src.sh
modified: install-scripts/xdph.sh
modified: install-scripts/xkbcommon.sh
modified: install-scripts/zsh_pokemon.sh
* Fixed build error with hyprtoolkit
* Updated docs for new build dir layout and how to clean up after
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: Debian-Hyprland-Install-Upgrade.es.md
modified: Debian-Hyprland-Install-Upgrade.md
* Updated CHANGELOG with build dir change and fixes
On branch development
Your branch is up to date with 'origin/development'.
Changes to be committed:
modified: CHANGELOG.md
577 lines
16 KiB
Markdown
577 lines
16 KiB
Markdown
# 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
|
|
|
|
1. [Resumen](#resumen)
|
|
2. [Nuevas Funciones](#nuevas-funciones)
|
|
3. [Referencia de Flags](#referencia-de-flags)
|
|
4. [Modo de Compatibilidad Debian 13 (Trixie)](#modo-de-compatibilidad-debian-13-trixie)
|
|
5. [Gestión Central de Versiones](#gestión-central-de-versiones)
|
|
6. [Métodos de Instalación](#métodos-de-instalación)
|
|
7. [Flujos de Actualización](#flujos-de-actualización)
|
|
8. [Pruebas con Dry-Run](#pruebas-con-dry-run)
|
|
9. [Gestión de Logs](#gestión-de-logs)
|
|
10. [Uso Avanzado](#uso-avanzado)
|
|
11. [Solución de Problemas](#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.env` y 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:
|
|
|
|
```bash
|
|
chmod +x ./update-hyprland.sh
|
|
./update-hyprland.sh --help # Ver todas las opciones
|
|
```
|
|
|
|
Flags clave:
|
|
|
|
- --fetch-latest: obtiene las últimas etiquetas desde GitHub
|
|
- --force-update: sobrescribe valores fijados en hypr-tags.env (equivalente a FORCE=1)
|
|
- --dry-run / --install: solo compilar o compilar+instalar
|
|
- --only / --skip: limitar qué módulos se ejecutan
|
|
- --build-trixie / --no-trixie: habilita/deshabilita el modo de compatibilidad Debian 13 (auto-detectado por defecto)
|
|
|
|
#### dry-run-build.sh
|
|
|
|
Herramienta de pruebas que compila componentes sin instalarlos:
|
|
|
|
```bash
|
|
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.
|
|
|
|
## Referencia de Flags
|
|
|
|
Este repo incluye varios "flags de control" que afectan cómo se compila/instala el stack.
|
|
|
|
### Flags de update-hyprland.sh
|
|
|
|
- `--install` / `--dry-run`: compilar+instalar vs solo compilar
|
|
- `--only <lista>` / `--skip <lista>`: ejecutar solo un subconjunto de módulos
|
|
- `--fetch-latest`: consulta GitHub Releases y refresca etiquetas
|
|
- `--force-update`: sobrescribe valores fijados en `hypr-tags.env` (equivalente a `FORCE=1`)
|
|
- `--build-trixie` / `--no-trixie`: habilita/deshabilita modo de compatibilidad Debian 13
|
|
|
|
Notas:
|
|
- Cuando el modo trixie está habilitado, `update-hyprland.sh` exporta `HYPR_BUILD_TRIXIE=1` y reenvía `--build-trixie` a los scripts de módulos.
|
|
|
|
### Flags de install.sh
|
|
|
|
- `--preset <archivo>`: ejecutar con elecciones predefinidas
|
|
- `--build-trixie` / `--no-trixie`: habilita/deshabilita modo de compatibilidad Debian 13
|
|
|
|
También puedes forzar por variable de entorno:
|
|
|
|
```bash
|
|
HYPR_BUILD_TRIXIE=1 ./install.sh
|
|
```
|
|
|
|
### Flags de refresh-hypr-tags.sh
|
|
|
|
- `--get-latest`: refresca etiquetas a las últimas releases de GitHub (alias)
|
|
- `--force-update`: forzar sobrescritura de valores fijados
|
|
|
|
Equivalente con variable de entorno:
|
|
|
|
```bash
|
|
FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|
```
|
|
|
|
## Modo de Compatibilidad Debian 13 (Trixie)
|
|
|
|
Versiones nuevas de Hyprland (0.53.x+) pueden requerir shims de compatibilidad en Debian 13 (trixie) debido a diferencias del toolchain/stdlib.
|
|
|
|
- Por defecto es **auto-detectado** (vía `/etc/os-release`): si `ID=debian` y `VERSION_CODENAME=trixie`, el modo se habilita.
|
|
- Puedes forzarlo ON/OFF:
|
|
|
|
```bash
|
|
# Forzar ON
|
|
./update-hyprland.sh --build-trixie --install
|
|
|
|
# Forzar OFF
|
|
./update-hyprland.sh --no-trixie --install
|
|
```
|
|
|
|
## Gestión Central de Versiones
|
|
|
|
### hypr-tags.env
|
|
|
|
Archivo con etiquetas de versión para todos los componentes de Hyprland:
|
|
|
|
```bash
|
|
# Versiones actuales (ejemplo)
|
|
HYPRLAND_TAG=v0.53.2
|
|
AQUAMARINE_TAG=v0.10.0
|
|
HYPRUTILS_TAG=v0.11.0
|
|
HYPRLANG_TAG=v0.6.8
|
|
HYPRGRAPHICS_TAG=v0.5.0
|
|
HYPRTOOLKIT_TAG=v0.4.1
|
|
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
|
HYPRLAND_PROTOCOLS_TAG=v0.7.0
|
|
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
|
HYPRLAND_QTUTILS_TAG=v0.1.5
|
|
HYPRLAND_GUIUTILS_TAG=v0.2.0
|
|
HYPRWIRE_TAG=v0.2.1
|
|
WAYLAND_PROTOCOLS_TAG=1.46
|
|
```
|
|
|
|
### Refrescar etiquetas (últimas releases)
|
|
|
|
Puedes refrescar `hypr-tags.env` a las últimas etiquetas publicadas en GitHub:
|
|
|
|
```bash
|
|
# Actualiza solo claves en auto/latest (o sin valor)
|
|
./refresh-hypr-tags.sh --get-latest
|
|
|
|
# Forzar sobrescritura de valores fijados
|
|
FORCE=1 ./refresh-hypr-tags.sh --get-latest
|
|
# o
|
|
./refresh-hypr-tags.sh --force-update
|
|
```
|
|
|
|
### Prioridad de Sobrescritura de Versiones
|
|
|
|
1. Variables de entorno (exportadas)
|
|
2. Valores en el archivo `hypr-tags.env`
|
|
3. Valores por defecto en cada módulo
|
|
|
|
## Métodos de Instalación
|
|
|
|
### Método 1: Instalación Completa Original
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Instala solo Hyprland y componentes esenciales
|
|
./update-hyprland.sh --install
|
|
```
|
|
|
|
### Método 3: Instalación Nueva con Últimas Versiones
|
|
|
|
```bash
|
|
# Obtiene últimas versiones de GitHub e instala
|
|
./update-hyprland.sh --fetch-latest --install
|
|
|
|
# Si tu hypr-tags.env tiene valores fijados y deseas sobrescribirlos:
|
|
./update-hyprland.sh --fetch-latest --force-update --install
|
|
```
|
|
|
|
### Método 4: Instalación con Preset
|
|
|
|
```bash
|
|
# 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](#actualización-049050x--0511)
|
|
|
|
### Actualizar a la Última Versión de Hyprland
|
|
|
|
#### Opción A: Descubrimiento Automático
|
|
|
|
```bash
|
|
# Obtiene las últimas etiquetas e instala (respeta versiones fijadas en hypr-tags.env)
|
|
./update-hyprland.sh --fetch-latest --install
|
|
|
|
# Forzar la actualización de todas las etiquetas (mismo efecto que ejecutar refresh con FORCE=1)
|
|
./update-hyprland.sh --fetch-latest --force-update --install
|
|
```
|
|
|
|
#### Opción B: Versión Específica
|
|
|
|
```bash
|
|
# Establece una versión específica de Hyprland
|
|
./update-hyprland.sh --set HYPRLAND=v0.51.1 --install
|
|
```
|
|
|
|
#### Opción C: Probar Antes de Instalar
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Instalar todo excepto los componentes Qt
|
|
./update-hyprland.sh --install --skip hyprland-qt-support,hyprland-qtutils
|
|
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
./update-hyprland.sh --with-deps --install --only hyprland
|
|
```
|
|
|
|
- Puedes hacer un dry-run primero para validar:
|
|
|
|
```bash
|
|
./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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
## Artefactos de Build y Limpieza
|
|
|
|
Todas las fuentes descargadas y salidas de compilación ahora viven en `~/Debian-Hyprland/build/`:
|
|
|
|
- **Fuentes:** `build/src/<proyecto>`
|
|
- **Salida de build:** `build/<proyecto>`
|
|
|
|
Esto mantiene el repositorio limpio. Para eliminar todos los artefactos de compilación:
|
|
|
|
```bash
|
|
rm -rf ~/Debian-Hyprland/build
|
|
```
|
|
|
|
Nota: Esto solo elimina artefactos de compilación y fuentes descargadas; no desinstala nada del sistema.
|
|
|
|
### 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
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# Mantener solo logs de los últimos 30 días
|
|
find Install-Logs/ -name "*.log" -mtime +30 -delete
|
|
```
|
|
|
|
## Uso Avanzado
|
|
|
|
### Gestión de Versiones
|
|
|
|
#### Forzar la Actualización de Todas las Etiquetas
|
|
|
|
```bash
|
|
# Sobrescribe valores fijados en hypr-tags.env con las últimas versiones
|
|
./update-hyprland.sh --fetch-latest --force-update --dry-run
|
|
# Instalar si la dry-run es exitosa
|
|
./update-hyprland.sh --force-update --install
|
|
```
|
|
|
|
#### Copia de Seguridad y Restauración
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Controlar el paralelismo (por defecto: todos los núcleos)
|
|
export MAKEFLAGS="-j4"
|
|
./update-hyprland.sh --install
|
|
```
|
|
|
|
### Flujo de Trabajo de Desarrollo
|
|
|
|
#### Probar Nuevos Lanzamientos
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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**:
|
|
|
|
```bash
|
|
# 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**:
|
|
|
|
```bash
|
|
# 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**:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. **Verificar compatibilidad del sistema**:
|
|
|
|
```bash
|
|
# Verificar versión de Debian
|
|
cat /etc/os-release
|
|
|
|
# Asegurar deb-src habilitado
|
|
grep -E "^deb-src" /etc/apt/sources.list
|
|
```
|
|
|
|
2. **Verificar entorno**:
|
|
|
|
```bash
|
|
# Ver etiquetas actuales
|
|
cat hypr-tags.env
|
|
|
|
# Probar dry-run primero
|
|
./update-hyprland.sh --dry-run --only hyprland
|
|
```
|
|
|
|
3. **Analizar logs**:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. **Revisar logs**: Consulte siempre Install-Logs/ para detalles
|
|
2. **Probar dry-run**: Valide antes de instalar
|
|
3. **Soporte de la comunidad**: Envíe issues con extractos de logs
|
|
4. **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:
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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.
|