1. Introducción
Si durante la instalación de un paquete o la actualización del sistema se produce un error no controlado o se apaga el equipo de forma inesperada el sistema de gestión de paquetes (Dpkg y Apt) o el Lliurex-Up pueden quedar bloqueados, impidiendo que puedan ser utilizados de nuevo.
Junto con la opción para solucionar los bloqueos comentados anteriormente se ha añadido una nueva posibilidad que permite gestionar la protección del metapaquete. Esto ayudará a prevenir la eliminación accidental de paquetes esenciales para el sistema que podrían dejarlo en un estado inconsistente o incluso inutilizable.
Para facilitar ambas gestiones se ha desarrollado la aplicación Dpkg-Unlocker. Cuenta con un modo gráfico (dpkg-unlocker-gui) y una versión para terminal (dpkg-unlocker-cli). A continuación se describe su funcionamiento.
2. Dpkg-Unlocker-Gui
Para ejecutar la aplicación hay que acceder al zero-center y en la sección “Sistemas” lanzar el zomando correspondiente a dpkg-unlocker.
La aplicación cuenta con 4 paneles:
- Servicios: desde donde se puede gestionar todo lo relacionado con el bloqueo de los servicios monitorizados (LliureX-Up,Apt y Dpkg).
- Restaurar servicios: desde donde se puede ejecutar el proceso de resturación de los servicios
- Detalle del proceso: para consultar el detalle de las acciones realizadas para intentar solucionar el bloqueo detectado.
- Protección del metapaquete: para gestionar la activación/desactivación de esta protección.
2.1. Desbloqueo de los servicios
Cuando se lanza dpkg-unlocker-gui realiza una comprobación sobre el estado deLliurex-Up, Dpkg y Apt y lo muestra en la ventana principal de la aplicación.
Se muestran a continuación ejemplos de distintas situaciones que pueden ser detectadas.
- No se detectan bloqueos:
- Se detectan bloqueos pero se deben a que hay procesos asociados en marcha:
En el caso de que se detecte que Lliurex-Up, Apt, o Dpkg estan bloqueados pero no hay ningún proceso asociado en marcha, dpkg-unlocker considera que la situación es anómala y habilita la posibilidad de ejecutar la rutina de desbloqueo.
Al hacer clic sobreel botón “Desbloquear” se pedirá confirmación al usuario para lanzar la rutina de desbloqueo.
Si acepta el proceso se ejecuta, pudiendo seguir la evolución del mismo desde el panel Detalles del Proceso
Al finalizar se muestra el estado en que han quedado Lliurex-Up, Apt y Dpkg, indicando además si el proceso de desbloqueo ha finalizado con éxito o si por el contrario se han producido errores en el mismo.
Si se detecta que Lliurex-Up, Dpkg o Apt están bloqueados debido a un error, pero al mismo tiempo alguno de ellos esta bloqueado porque hay procesos en marcha no se podrá ejecutar la rutina de desbloqueo. Será necesario esperar unos minutos y volver a ejecutar dpkg-unlocker para ver si ya es posible ejecutar el proceso de desbloqueo
2.2. Restauración de los servicios
Si durante la instalación de un paquete o la actualización del sistema se produce algún tipo de error que impida que los paquetes correspondientes queden correctamente configurados, es posible que no puedan instalarse otros paquetes o actualizar de nuevo el sistema.
En esta situación al intentar instalar un paquete o actualizar el sistema muestra en la terminal un mensaje similar a este:
En estos casos mediante la opción disponible en Dpkg-Unlocker (sólo en LliureX 21) puede solucionarse este problema. Para ello se accederá al panel Restaurar servicios
Para iniciar el proceso de restauración se hará clic en Restaurar y se confirmará la acción.
Los detalles del proceso pueden consultarse en el panel Detalles del Proceso
NOTA:
El proceso de restauración sólo puede ejecutarse sino existen bloqueos en los servicios involucrados y dichos procesos no están siendo ejecutados
2.3. Protección del metapaquete
Esta protección impide que el metapaquete del sistema sea desinstalado (bien de forma directa o indirectamente al desintalar alguna aplicación que forma parte del mismo), lo que puede provocar que el sistema se comporte de forma inconsistente.
En general no hay ninguna situación que implique la necesidad de desactivar esta protección, pero si en algún momento se considera oportuno para desactivar la misma, simplemente se desmarcara el check correspondiente.
Al hacer clic en Aplicar se mostrará un cuadro de dialogo para confirmar la acción.
Al desactivar la protección del metapaquete se mostrará un mensaje informativo advirtiendo del riesgo que comporta esta acción.
Para activar de nuevo la protección, bastará con marcar de nuevo el check y aplicar los cambios.
3. Dpkg-Unlocker-Cli
Para ejecutar la versión para terminal de dpkg-unlocker hay que abrir una terminal y escribir: sudo dpkg-unlocker-cli -h. Se mostrará una ayuda con los modos de funcionamiento de la herramienta.
3.1. Desbloqueo de los servicios
Mediante el comando sudo dpkg-unlocker-cli showservices se muestra el estado de Lliurex-Up,Dpkg y Apt:
Mediante el comando sudo dpkg-unlocker-cli unlock se muestra el estado de Lliurex-Up,Dpkg y Apt. Algunos ejemplos
- No se detectan bloqueos:
- Procesos bloqueados debido a que se estan ejecutando
- Procesos bloqueados poer error y otros bloqueados por estar en ejecución
En caso de que la situación detectada así lo requiera se pedirá al usuario la confirmación para lanzar el proceso de desbloqueo:
Si se ejecuta sudo dpkg-unlocker-cli unlock -u o (--unattended) la rutina de desbloqueo se lanzará (si la situación detectada lo permite) sin pedir confirmación al usuario.
Si se ejecuta el comando sudo dpkg-unlocker unlock -k o (--kill) se podrá lanzar la rutina de desbloqueo incluso aunque el bloqueo se deba a la existencia procesos asociados en marcha. Esta opción sólo debe ejecutarse si se esta complementamente seguro de que los procesos en marcha están “colgados” y se considera que la situación puede solucionarse “matando” los procesos que estan ejecutándose.
Una mala utilización de esta opción puede provocar que el sistema quede en una situación inconsistente que requiera ejecutar acciones de repación de forma manual por parte del usuario
3.2. Restauración de los servicios
Para ejecutar el proceso de restauración de servicios mediante dpkg-unlocker-cli se usará el comando: dpkg-unlocker-cli restore
Tras confirmar la acción (si no se está usando el modo desatendido) se iniciará el proceso de restauración
3.3. Protección del metapaquete
Mediante showprotection se muestra el estado en que se encuentra la protección del metapaquete
Para desactivar esta protección, basta usar el comando dpkg-unlocker-cli disableprotection.
A continuación, si se confirma la acción, la protección será desactivada.
Para activarla de nuevo, el comando a usar sería: dpkg-unlocker-cli enableprotection