Reparar dpkg roto por G Radio Player
Problema
Todas las versiones publicadas hasta la 0.4.7 inclusive incluyen un bug en el script de desinstalación (prerm) que mata al propio proceso de dpkg durante la remoción del paquete. Esto deja el sistema de paquetes en estado inconsistente.
El fix (pkill -x en vez de pkill -f) está en package-deb.sh, pero debe reconstruirse el .deb para que el paquete distribuido lo incluya — un .deb 0.4.8 construido antes de esa fecha sigue roto (se quitaron permisos de descarga a las versiones previas).
Síntoma
Al intentar instalar, remover o actualizar cualquier paquete aparece:
E: se interrumpió la ejecución de dpkg, debe ejecutar manualmente
«sudo dpkg --configure -a» para corregir el problema
Causa
El script prerm usaba pkill -f "radio-player" para detener procesos antes de desinstalar. El flag -f busca en la línea de comando completa. La cadena "radio-player" es subcadena de "gradio-player" (gradio-player[1:] = radio-player), por lo que el patrón coincide con el propio script de mantenimiento (/var/lib/dpkg/info/gradio-player.prerm) y con la invocación de dpkg/apt (dpkg -i gradio-player_*.deb), matándolos a mitad de la operación.
La corrección es usar pkill -x (match exacto por nombre de proceso), que solo mata procesos llamados literalmente radio-player, no gradio-player.prerm ni dpkg.
Reparación paso a paso
Paso 1 — Eliminar el script prerm roto
sudo rm -f /var/lib/dpkg/info/gradio-player.prerm
Paso 2 — Reparar el estado de dpkg
sudo dpkg --configure -a
Paso 3 — Remover el paquete
sudo dpkg --remove --force-remove-reinstreq gradio-player
Si el paso anterior falla, forzar la remoción completa:
sudo dpkg --purge --force-remove-reinstreq gradio-player
Paso 4 — Verificar que el sistema quedó limpio
sudo apt update
sudo apt install -f
No deberían aparecer errores.
Paso 5 — Instalar la versión corregida (opcional)
sudo dpkg -i gradio-player_0.4.0_amd64.deb # x86_64
sudo dpkg -i gradio-player_0.4.0_arm64.deb # Raspberry Pi
Limpieza manual (si dpkg no removió los archivos)
Si después de la remoción quedan archivos instalados por el paquete:
# Binarios
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}
sudo rm -f /usr/local/bin/{gr-reportes,gr-record}
# Datos compartidos
sudo rm -rf /usr/local/share/radio-player
# Entrada de escritorio e icono
sudo rm -f /usr/share/applications/gradio-player.desktop
sudo rm -f /usr/share/icons/hicolor/48x48/apps/gradio-player.png
# Actualizar cachés
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 de usuario en ~/.gradio/ no se eliminan con la desinstalación (parrilla, comerciales, configuración). Borrarlos solo si se desea una limpieza total:
rm -rf ~/.gradio
Postmortem (registro)
- Origen: Afecta a todos empaquetados
.debprevios a 0.4.8 (package-deb.shy sus scripts de mantenimiento). El bug delprermfue un error propio del empaquetado. - Mecanismo:
pkill -f "radio-player"—"radio-player"es subcadena de"gradio-player", así que-fmataba al propiogradio-player.prermy adpkg/apt. Fix:pkill -x. - Alcance: roto en todos los
.debpublicados previos 0.4.8. - Por qué persistió: el fix se aplicó a
package-deb.shpero no se reconstruyó ningún.deb— el fuente parecía corregido mientras todos los paquetes distribuidos seguían rotos. - 2026-06-23 — corrección efectiva:
.deb0.4.8 amd64 reconstruido conpkill -x, probado con ciclo install→remove (dpkg quedó sano) y subido agradio.net/descargas/.../v-0.61R/DEB/(verificado por md5 y HTTP 200).- Todos los
.debprevios/buggy en el servidor (incluidos los arm64 0.4.8 aún sin corregir) puestos en permisos000→ HTTP 403, para no romper a usuarios hasta publicar el reemplazo. - Pendiente: recompilar y subir los
.debarm64 / arm64_bookworm 0.4.8 nativamente en la RPi 5, luego restaurar sus permisos a644.
