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.
In this section, we will focus on upgrading a Bullseye system to Bookworm. This is a major operation on a system; as such, it is never 100% risk-free, and should not be attempted before all important data has been backed up.
Another good habit which makes the upgrade easier (and shorter) is to tidy your installed packages and keep only the ones that are really needed. Helpful tools to do that include aptitude, deborphan, debfoster, and apt-show-versions (see Sección 6.2.7, “Seguimiento de paquetes instalados automáticamente”). For example, you can use the following command, and then use aptitude's interactive mode to double check and fine-tune the scheduled removals:
# deborphan | xargs aptitude --schedule-only remove
Now for the upgrading itself. First, you need to change the /etc/apt/sources.list file to tell APT to get its packages from Bookworm instead of Bullseye. If the file only contains references to Stable rather than explicit codenames, the change isn't even required, since Stable always refers to the latest released version of Debian. In both cases, the database of available packages must be refreshed with the apt update command or the refresh button in synaptic (Sección 6.2.1, “Inicialización”).
Once these new package sources are registered, you should first do a minimal upgrade with apt upgrade et al. as described in Sección 6.2.3, “Actualización del sistema”. By doing the upgrade in two steps, we ease the job of the package management tools and often ensure that we have the latest versions of those, which might have accumulated bugfixes and improvements required to complete the full distribution upgrade.
Once this first upgrade is done, it is time to handle the upgrade itself, either with apt full-upgrade, aptitude, or synaptic (Sección 6.7, “Actualización de una distribución estable a la siguiente”). You should carefully check the suggested actions before applying them: you might want to add suggested packages or deselect packages which are only recommended and known not to be useful. In any case, the frontend should come up with a scenario ending in a coherent and up-to-date Bookworm system. Then, all you need is to do is wait while the required packages are downloaded, answer the debconf questions and possibly those about locally modified configuration files, and sit back while APT does its magic.

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.
You might sometimes find that the new version of a software doesn't work at all. This generally happens if the application isn't particularly popular and hasn't been tested enough; a last-minute update can also introduce regressions which are only found after the stable release. In both cases, the first thing to do is to have a look at the bug tracking system at https://bugs.debian.org/package, and check whether the problem has already been reported. If this is case, it will be also listed before the upgrade begins if you have apt-listbugs installed. If it hasn't, you should report it yourself with reportbug. If it is already known, the bug report and the associated messages are usually an excellent source of information related to the bug:
  • 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

Sometimes the Debian ftpmasters remove packages from the Debian archive, because they contain release critical bugs, were abandoned by their upstream author or their package maintainer, or simply reached their end of life. In this case, a newer Debian release does not ship the package anymore. To find all packages, which do not have a package source, use the apt-show-versions command:
$ 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

If the upgrade was successful, there might be some configuration file cruft, either from dpkg (see Sección 5.2.3, “Checksums, List of Configuration Files, et al.”), ucf or from removed packages. The latter can be purged by using apt autoremove --purge. The configuration files that were handled by dpkg or ucf during the upgrade process have left some counterparts with a dedicated suffix, e.g. .dpkg-dist, .dpkg-old, .ucf-old. Using the find or locate command can help to track them down. If they are no longer of any use, they can be deleted.
Be aware that a purge also removes the data created with a particular package (e.g. database files, docker volumes and containers, etc.). There should always be backups in place in case data gets removed accidentally.

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.