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 Stretch system to Buster. 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.
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
y
debfoster
(revise la
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
Now for the upgrading itself. First, you need to change the /etc/apt/sources.list
file to tell APT to get its packages from Buster instead of Stretch. 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
).
Una vez que se registraron las nuevas fuentes de paquetes, primero debe realizar una actualización mínima con apt upgrade
. El realizar 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.
Once this first upgrade is done, it is time to handle the upgrade itself, either with apt full-upgrade
, aptitude
, or synaptic
. 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 front-end should come up with a scenario ending in a coherent and up-to-date Buster 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:
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.
Depending on the severity of the bug, a new version of the package may be prepared specifically for a new revision of the stable release. When this happens, the fixed package is made available in the
proposed-updates
section of the Debian mirrors (see
Sección 6.1.2.3, “Actualizaciones propuestas”). The corresponding entry can then be temporarily added to the
sources.list
file, and updated packages can be installed with
apt
or
aptitude
.
Sometimes the fixed package isn't available in this section yet because it is pending a validation by the Stable Release Managers. You can verify if that is the case on their web page. Packages listed there aren't available yet, but at least you know that the publication process is ongoing.
6.7.3. Cleaning Up after an Upgrade
APT usually ensures a clean upgrade, pulling in new and updated dependencies, or removing conflicting packages. But even being such a great tool, it cannot cover all tasks users and administrators will face after an upgrade, because they require a human decision.
6.7.3.1. Packages removed from the Debian Archive
Sometimes the Debian FTP Masters 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"
A similar result can be achieved by aptitude search ~o
. If the packages found are not required anymore, they should be purged from the system, because they will not face any updates for critical or security related bugs anymore.
6.7.3.2. Dummy and Transitional Packages
Sometimes, it might be necessary for a package to get a new name. In this case often the old package is kept as an (almost) empty package, depending on the new one and installing only the mandatory files in
/usr/share/doc/package/
. Such packages are called "dummy" or "transitional" packages. If the package maintainer in charge also changed the section of this package to
oldlibs
, then tools like
aptitude
,
deboprhan
, or
debfoster
(see sidebar
ALTERNATIVA deborphan
y debfoster
) can pickup these packages to suggest their removal.
Unfortunately there is currently no foolproof way of making sure that these packages are automatically removed or picked by the tools mentioned above. One way to check if the system still has some of these packages installed, is to look through the package descriptions of installed packages and then check the results. Be careful not to schedule the results for automatic removal, because this method can lead to false positives:
$
dpkg -l | grep ^ii | grep -i -E "(transition|dummy)"
6.7.3.3. Old or Unused Configuration Files
If the upgrade was successful there might be some configuration file cruft, either from dpkg (see
Sección 5.2.3, “Sumas de verificación («checksum»), lista de archivos de configuración”), 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.
6.7.3.4. Files not owned by any Package
The Debian policy enforces that packages don't leave files behind when they are purged. Violating this principle is a serious bug and you will rarely encounter it. If you do, report it; and if you are curious though, you can use the cruft or cruft-ng package to check your system for files not owned by any package.