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

3.3 KiB
Raw Permalink Blame History

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:

sudo bash instalar.sh

O aplica el parche manual de una línea antes de instalar:

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

# 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:

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)

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