Files
cescobar 03084e2d5a Commit inicial: G Radio Player
Sistema de automatización de radio en Rust (GTK4 + GStreamer): reproductor
principal con crossfade y ducking, scheduler de comerciales, refill de
playlist, y herramientas auxiliares (pautaje, parrilla, botonera, visor,
buscador, playlist, grabador, reportes). Incluye sistema de skins y modos
de Players (paneles de reproducción configurables).
2026-08-23 00:57:40 -05:00

97 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reparar dpkg roto por G Radio Player
## Actualizar desde 0.4.8 o anterior a 0.4.9+
Si tienes una versión anterior instalada, **no ejecutes `dpkg -i` directamente** — el `prerm` del paquete instalado corre primero y puede matar a `dpkg`.
Usa el script incluido en el ZIP, que parchea automáticamente antes de instalar:
```bash
sudo bash instalar.sh
```
O aplica el parche manual de una línea antes de instalar:
```bash
sudo bash -c 'printf "#!/bin/bash\nexit 0\n" > /var/lib/dpkg/info/gradio-player.prerm'
sudo dpkg -i gradio-player_0.4.9_amd64.deb # o arm64 / arm64_bookworm
```
---
## Mi dpkg ya está roto (no puedo instalar ni actualizar nada)
### Síntoma
```
E: se interrumpió la ejecución de dpkg, debe ejecutar manualmente
«sudo dpkg --configure -a» para corregir el problema
```
O:
```
dpkg: error al procesar el paquete gradio-player (--configure):
El paquete está en un estado grave de inconsistencia - debe reinstalarlo
antes de intentar su configuración.
```
### Reparación rápida
```bash
# 1. Parchear el prerm roto
sudo bash -c 'printf "#!/bin/bash\nexit 0\n" > /var/lib/dpkg/info/gradio-player.prerm'
# 2. Reinstalar 0.4.9 (ya tiene prerm correcto)
sudo dpkg -i gradio-player_0.4.9_amd64.deb # o arm64 / arm64_bookworm
```
Si aun así dpkg reporta inconsistencia, forzar la eliminación primero:
```bash
sudo bash -c 'printf "#!/bin/bash\nexit 0\n" > /var/lib/dpkg/info/gradio-player.prerm'
sudo dpkg --remove --force-remove-reinstreq gradio-player
sudo dpkg --configure -a
sudo dpkg -i gradio-player_0.4.9_amd64.deb
```
---
## Causa raíz
El script `prerm` de versiones anteriores usaba `pkill -f "radio-player"`. El flag `-f` busca en la línea de comando **completa** de todos los procesos. La cadena `"radio-player"` es subcadena de `"gradio-player"`, por lo que el patrón coincide con:
- El propio script de mantenimiento: `/var/lib/dpkg/info/gradio-player.prerm`
- La invocación de dpkg: `dpkg -i gradio-player_0.4.9_amd64.deb`
Al ejecutar, el script se mata a sí mismo y a dpkg, dejando el gestor de paquetes en estado inconsistente.
**Desde 0.4.9**: el `prerm` es `exit 0`. No hay kill de procesos. Los ejecutables en uso se reemplazan de forma segura en disco (Linux mantiene el inode anterior abierto hasta que el proceso cierre).
---
## Limpieza manual (si dpkg no removió los archivos)
```bash
sudo rm -f /usr/local/bin/{radio-player,comercial-scheduler,playlist-refill}
sudo rm -f /usr/local/bin/{gradio.sh,gr-buscador,gr-playlist}
sudo rm -f /usr/local/bin/{gr-pautaje,gr-parrilla,gr-botonera,gr-visor,gr-reportes,gr-record}
sudo rm -rf /usr/local/share/radio-player
sudo rm -f /usr/share/applications/gradio-player.desktop
sudo rm -f /usr/share/icons/hicolor/48x48/apps/gradio-player.png
sudo gtk-update-icon-cache -f -t /usr/share/icons/hicolor 2>/dev/null
sudo update-desktop-database /usr/share/applications 2>/dev/null
```
Los datos del usuario en `~/.gradio/` no se eliminan (parrilla, comerciales, configuración).
---
## Historial del bug
| Versión | Estado prerm | Notas |
|---------|-------------|-------|
| 0.3.x 0.4.7 | `pkill -f` roto | Todos los .deb publicados afectados |
| 0.4.8 | `pkill -x` (mejorado) | Sigue siendo un kill — al actualizar a 0.4.9 corre el prerm de 0.4.8 instalado, que puede matar dpkg en algunos entornos |
| **0.4.9+** | `exit 0` | **Fix definitivo** — no hay kill de procesos |