Product SiteDocumentation Site

6.7. Actualización de una distribución estable a la siguiente

Una de las características más conocidas de Debian es su habilidad de actualizar un sistema instalado de una versión estable a la siguiente: «dist-upgrade» — una frase muy conocida — contribuyó en gran medida a la reputación del proyecto. Tomando unas pocas precauciones, actualizar un equipo puede tomar tan poco como unos cuantos minutos, o unas docenas de minutos, dependiendo de la velocidad de descarga de los repositorios de paquetes.

6.7.1. Procedimiento recomendado

Dado que Debian tiene bastante tiempo para evolucionar entre versiones estables debería leer las notas de publicación antes de actualizar.
En esta sección nos centraremos en actualizar un sistema Buster a Bullseye. Esta es una operación de gran envergadura en un sistema; como tal, nunca está 100% libre de riesgos y no debería intentarse antes de tener copias de respaldo de todos los datos importantes.
Otro buen hábito que haría la actualización más sencilla (y más corta) es ordenar sus paquetes instalados y sólo mantener aquellos que son realmente necesarios. Las herramientas útiles para realizarlo incluyen aptitude, deborphan, debfoster y apt-show-versions(ver Sección 6.2.7, “Seguimiento de paquetes instalados automáticamente”). Por ejemplo, puede utilizar la siguiente orden, y luego utilizar el modo interactivo de aptitude para revisar y retocar las eliminaciones programadas:
# deborphan | xargs aptitude --schedule-only remove
Ahora para la actualización en sí. Primero necesita cambiar el archivo /etc/apt/sources.list para indicarle a APT que obtenga sus paquetes de Bulleyes en lugar de Buster. Si el archivo sólo contiene referencias a Stable en lugar de nombres código explícitos, no necesita hacer este cambio ya que Stable siempre hace referencia a la última versión de Debian publicada. En ambos casos, necesita actualizar la base de datos de paquetes disponibles (con apt update o el botón de actualización en synaptic).
Una vez que se registraron las nuevas fuentes de paquetes, primero debe realizar una actualización mínima con apt upgrade, comoo se describe en Sección 6.2.3, “Actualización del sistema” . Hacer la actualización en dos pasos facilitará el trabajo de las herramientas de gestión de paquetes y generalmente asegurará que tendrá las últimas versiones de las mismas, que pueden haber acumulado correcciones de errores y mejoras necesarias para finalizar la actualización de la distribución completa.
Una vez que se completa la pimera actualización, llega el momento de la actualización en sí. Ya sea con apt full-upgrade, aptitude> o synaptic. Debería verificar cuidadosamente las acciones sugeridas antes de ejecutarlas: podría desear agregar paquetes sugeridos o deseleccionar paquetes que sólo son recomendados y sabe que no serán útiles. En cualquier caso, la interfaz debería proveer un escenario que termine con un sistema Bulleyes coherente y actualizado. Luego, todo lo que necesita hacer es esperar mientras se descargan los paquetes necesarios, responder las preguntas de debconf y posiblemente aquellas sobre archivos de configuración modificados localmente y sentarse a esperar mientras APT hace su magia.

6.7.2. Manejo de problemas tras una actualización

A pesar de los mejores esfuerzos de los encargados de Debian, una actualización general del sistema no es siempre tan fluida como uno desearía. Nuevas versiones de software podrían ser incompatibles con las anteriores (por ejemplo, podrían haber cambiado sus comportamientos predeterminados o sus formatos de datos). También, se pueden haber colado algunos errores a pesar de la fase de pruebas que precede a una publicación de Debian.
Para anticiparse a algunos de estos problemas, puede instalar el paquete apt-listchanges que muestra información acerca de posibles problemas al prinicipio de la actualización de un paquete. Los encargados de los paquetes recopilan esta información y la incorporan a los archivos /usr/share/doc/paquete/NEWS.Debian para el beneficio de los usuarios. Leer estos archivos (posiblemente a través de apt-listchanges) debería ayudarle a evitar sorpresas desagradables.
A veces podría encontrar que la nueva versión de un software no funciona en absoluto. Esto generalmente ocurre si la aplicación no es popular o no fue probada lo suficiente; una actualización de último momento también podría introducir regresiones que se encuentran sólo luego de la publicación estable. En ambos casos, lo primero a hacer es revisar el sistema de seguimiento de errores en http://bugs.debian.org/paquete y verificar si el problema ya fue informado. Si es así, también será listado antes de que la actualización comience, si tienes instalado apt-listbugs. De no ser así, deberías informar con reportbug. Si ya es conocido, tanto el informe de error como los mensajes asociados suelen ser exelentes fuentes de información sobre el problema:
  • a veces existe un parche y está disponible en el reporte de error, puede recompilar localmente una versión corregida del paquete roto (revise la Sección 15.1, “Recompilación de un paquete desde sus fuentes”);
  • en otros casos, los usuarios podrían haber encontrado una forma de evitar el problema y compartido sus experiencias en sus respuestas al reporte;
  • en otros casos más, puede que el encargado ya haya preparado y publicado un paquete corregido.
Dependiendo de la severidad del error, se podría llegar a preparar una nueva versión del paquete específicamente para una nueva revisión de la versión estable. Cuando esto sucede, el paquete corregido estará disponible en la sección proposed-updates de las réplicas de Debian (revise la Sección 6.1.2.3, “Actualizaciones propuestas”). Puede agregar temporalmente la línea correspondiente al archivo sources.list e instalar los paquetes actualizados con apt o aptitude.
A veces el paquete corregido no está disponible en esta sección porque está pendiente de validación por parte de los Gestores de versiones estables. Puede verificar si este es el caso en su página web. Los paquetes allí listados aún no están disponibles, pero al menos sabe que el proceso de publicación está en marcha.

6.7.3. Limpieza tras una Actualización

APT normalmente asegura una actualización limpia, bajando dependencias nuevas y actualizadas o eliminando paquetes en conflicto. Pero aun siendo una herramienta tan buena, no puede cubrir todas las tareas a las que se enfrentan los usuarios y los administradores después de una actualización, porque requieren de una decisión humana.

6.7.3.1. Paquetes eliminados del Archivo de Debian

A veces los administradores del servidor FTP de Debian eliminan paquetes del archivo de Debian, porque contienen errores críticos para una publicación, fueron abandonados por su autor de origen o desarrollador del paquete o simplemente llegaron al final de su vida útil. En este caso, una nueva publicación de Debian no incluirá ya el paquete. Para encontrar todos los paquetes, que no tienen un paquete fuente, use la orden apt-show-versions:
$ apt-show-versions | grep "No available version"
Se puede obtener un resultado similar mediante aptitude search ~o. Si los paquetes encontrados ya no son necesarios, deberían ser purgados del sistema, puesto que ya no serán actualizados para errores críticos o de seguridad.

6.7.3.2. Paquetes Falsos y de Transición

A veces puede que sea necesario que un paquete obtenga un nuevo nombre. En este caso, a menudo se mantiene el viejo paquete como un paquete (casi) vacío, dependiendo del nuevo e instalando solo los archivos obligatorios en /usr/share/doc/paquete/. Estos paquetes se llaman «falsos» o «de transición» (dummy o transitional, en inglés). Si el desarrollador a cargo del paquete también cambió la sección del paquete a oldlibs, entonces las herramientas como aptitude, deboprhan o debfoster (consulte recuadro ALTERNATIVA deborphan y debfoster) pueden tener constancia de estos paquetes para sugerir su eliminación.
Desafortunadamente no una hay infalible de asegurarse de que estos paquetes se eliminan automáticamente o son detectados por las herramientas mencionadas anteriormente. Una forma de comprobar si el sistema todavía tiene algunos de estos paquetes instalados es mirar en las descripciones de los paquetes instalados y luego comprobar los resultados. Sea cuidadoso de no marcar los resultados para una eliminación automática, dado que este método puede dar falsos positivos:
$ dpkg -l | grep ^ii | grep -i -E "(transition|dummy)"
Ya que el nuevo paquete se recibe como una dependencia del paquete de transición, normalmente está marcado como instalado automáticamente y puede ser programado para eliminación si trata de purgar el paquete de transición de su sistema. En este caso, puede usar cualquiera de los enfoques descritos en los recuadros SUGERENCIA Eliminando e instalando al mismo tiempo y Sección 6.2.7, “Seguimiento de paquetes instalados automáticamente” para eliminar de forma selectiva el paquete de transición.

6.7.3.3. Archivos de Configuración Viejos o Sin Usar

Si la actualización se realizó con éxito puede que haya algún archivo de configuración basura, ya sea de dpkg (ver Sección 5.2.3, “Sumas de comprobación, lista de archivos de configuración y más.”), ucf o de paquetes eliminados. El último se puede purgar usando apt autoremove --purge. Los archivos de configuración que fueron manejados por dpkg o ucf durante el proceso de actualización han dejado algunas contrapartes con un sufijo dedicado (p. ej., .dpkg-dist, .dpkg-old, .ucf-old). Puede ayudar a localizarlos tanto la orden find como la orden locate. Si ya no son útiles, se pueden eliminar.

6.7.3.4. Archivos que no pertenecen a ningún Paquete

La Política de Debian fuerza a que los paquetes no dejen archivos tras de sí cuando son purgados. Es un error serio violar este principio, y rara vez lo encontrará. Si lo hace, notifíquelo; pero si es curioso, puede usar el paquete cruft o el paquete cruft-ng para buscar en su sistema archivos que no pertenecen a ningún paquete.