Capítulo 4. Actualizaciones desde Debian 9 (stretch)

Tabla de contenidos

4.1. Prepararse para la actualización
4.1.1. Haga copias de seguridad de sus datos e información de configuración
4.1.2. Informar a los usuarios anticipadamente
4.1.3. Prepararse para la indisponibilidad de servicios
4.1.4. Prepararse para la recuperación
4.1.5. Preparar un entorno seguro para la actualización
4.1.6. Verify network interface name support
4.2. Checking APT configuration status
4.2.1. La sección proposed-updates
4.2.2. Fuentes no oficiales
4.2.3. Desactivar el bloqueo de APT
4.2.4. Verificar el estado de los paquetes
4.3. Preparing APT source-list files
4.3.1. Añadir fuentes en Internet para APT
4.3.2. Añadir las réplicas locales para APT
4.3.3. Añadir fuentes para APT de medios ópticos
4.4. Actualizar los paquetes
4.4.1. Grabar la sesión
4.4.2. Actualizar las listas de paquetes
4.4.3. Asegúrese de que tiene suficiente espacio libre para actualizar
4.4.4. Actualización mínima del sistema
4.4.5. Actualizar el sistema
4.5. Posibles problemas durante o después de la actualización
4.5.1. Dist-upgrade falla con «No se pudo realizar la configuración inmediata»
4.5.2. Eliminaciones esperadas
4.5.3. Bucles en Conflictos o Pre-Dependencias
4.5.4. Conflictos de archivo
4.5.5. Cambios de configuración
4.5.6. Cambio de la sesión en consola
4.6. Actualización de su núcleo y paquetes relacionados
4.6.1. Instalación de un metapaquete del núcleo
4.7. Prepararse para la siguiente distribución
4.7.1. Purgando los paquetes eliminados
4.8. Paquetes obsoletos
4.8.1. Transitional dummy packages

4.1. Prepararse para la actualización

Le sugerimos que antes de actualizar lea también la información en Capítulo 5, Problemas que debe tener en cuenta para buster. Ese capítulo cubre problemas que se pueden dar y que no están directamente relacionados con el proceso de actualización, pero que aún así podría ser importante conocer antes de empezar.

4.1.1. Haga copias de seguridad de sus datos e información de configuración

Es muy recomendable realizar una copia de seguridad completa o al menos una de los datos o información de configuración que no pueda permitirse perder antes de actualizar su sistema. Las herramientas y el proceso de actualización son bastante fiables, pero un fallo de hardware a mitad de una actualización podría resultar en un sistema muy dañado.

Los elementos principales que debería querer salvaguardar son los contenidos de /etc, /var/lib/dpkg, /var/lib/apt/extended_states y la salida de «dpkg --get-selections "*"» (las comillas son importantes). Si utiliza aptitude para gestionar los paquetes en su sistema, también querrá hacer una copia de seguridad de /var/lib/aptitude/pkgstates.

El proceso de actualización no modifica nada dentro del directorio /home. Algunas aplicaciones (como es el caso de algunas partes del conjunto de aplicaciones Mozilla y el de los entornos de escritorio de KDE y GNOME) sí sobreescribirán la configuración del usuario con los nuevos valores por omisión cuando el usuario arranque una nueva versión de la aplicación. Como medida preventiva quizás desee realizar una copia de seguridad de los directorios y archivos ocultos («dotfiles», archivos que comienzan por punto, N. del T.) en los directorios personales de los usuarios. Esta copia de seguridad le será útil para restaurar o recrear la configuración previa a la actualización. Quizás quiera también avisar a los usuarios de este asunto.

Cualquier operación de instalación de paquetes debe ser ejecutada con privilegios de superusuario, bien accediendo al sistema como root o usando los programas su o sudo para obtener los derechos de acceso necesarios.

La actualización tiene unas cuantas condiciones previas, así que debería revisarlas antes de ponerse a ello.

4.1.2. Informar a los usuarios anticipadamente

Es aconsejable informar a los usuarios con antelación de cualquier actualización que esté planeando realizar, aunque los usuarios que accedan al sistema mediante ssh no deberían apenas notar nada durante la actualización, y deberían poder seguir trabajando.

Si desea tomar precauciones adicionales, haga una copia de seguridad, o desmonte la partición /home antes de actualizar.

Tendrá que hacer una actualización del núcleo cuando se actualice a buster, por lo que será necesario reiniciar el sistema. Esto se realizará habitualmente una vez la actualización haya terminado.

4.1.3. Prepararse para la indisponibilidad de servicios

Es posible que existan servicios ofrecidos por el sistema que están asociados a paquetes incluidos en el proceso de instalación. Si esto sucede, ha de tener en cuenta que los servicios se interrumpirán mientras los paquete asociados se están actualizando o están siendo reemplazados y configurados. El servicio no estará disponible durante este tiempo.

El tiempo exacto de indisponibilidad para estos servicios dependerá del número de paquetes que se están actualizando en el sistema, y también incluye el tiempo que el administrador dedica a responder a las preguntas de configuración de las distintas actualizaciones de paquetes (si las hubiera). Tenga en cuenta que si el proceso de actualización se hace de forma desatendida y el sistema realiza alguna pregunta durante éste hay una alta probabilidad de que los servicios no estén disponibles [1] durante un periodo de tiempo significativo.

Si el sistema que está vd. actualizando ofrece servicios críticos para sus usuarios o para la red [2], puede reducir el tiempo de disponibilidad si realiza una actualización mínima del sistema como se describe en Sección 4.4.4, “Actualización mínima del sistema”, seguido de una actualización del núcleo y un reinicio, y después una actualización de los paquetes asociados con sus servicios críticos. Actualice estos paquetes antes de hacer la actualización completa como se describe en Sección 4.4.5, “Actualizar el sistema”. De esta forma puede asegurarse que estos servicios críticos están ejecutándose y disponibles durante todo el proceso de actualización, reduciendo su indisponibilidad.

4.1.4. Prepararse para la recuperación

Aunque Debian intenta garantizar que el sistema es arrancable en todo momento, siempre hay una posibilidad de que experimente problemas al reiniciar el sistema tras la instalación. Muchos de los problemas conocidos se describen tanto en este capítulo como en los siguientes de estas notas de publicación.

Por esta misma razón tiene sentido asegurarse de que es capaz de recuperar el sistema en el caso que este no pudiera reiniciarse o, para aquellos sistemas gestionados de forma remota, no pudiera arrancar correctamente la configuración de red.

Si está actualizando de forma remota a través de un enlace con ssh es altamente recomendable que tome las debidas precauciones para poder acceder al servidor a través de un terminal serie remoto. Existe la posibilidad de que tras actualizar el núcleo y reiniciar tenga que arreglar la configuración del sistema a través de una consola remota. Igualmente, es posible que tenga que recuperar con una consola local en caso de que el sistema se reinicie accidentalmente a la mitad de la actualización.

Para recuperaciones de emergencia generalmente recomendamos la utlización del modo de rescate del Instalador de Debian de buster. La ventaja en el caso de utilizar el instalador es que podrá encontrar, de entre los distintos métodos de instalación, el más apropiado para su situación. Si desea más información, consulte la sección Recuperar un sistema roto en el capítulo octavo de la Guía de instalación y las PUF del Instalador de Debian.

Necesitará un mecanismo alternativo para arrancar su sistema y poder acceder al mismo y repararlo si esto fallara. Una opción es utilizar una imagen especial de rescate o un CD «vivo» de Linux («live CD», N. del T.). Una vez haya arrancado con cualquiera de éstos debería poder montar su sistema de archivos raíz y utilizar chroot para acceder a éste, investigar y solucionar el problema.

4.1.4.1. Intérprete de línea de órdenes de depuración durante el arranque con initrd

El paquete initramfs-tools incluye un intérprete de órdenes de depuración[3] en los «initrds» que genera. Por ejemplo, si el initrd es incapaz de montar su sistema de archivos raíz vd. accederá a este sistema de depuración. En este sistema podrá utilizar algunas órdenes básicas que pueden ayudarle a trazar el problema y quizás incluso arreglarlo.

Algunas de las cosas básicas a comprobar son: la existencia de los archivos de dispositivos correctos en /dev, los módulos cargados (cat /proc/modules), y la salida de dmesg para ver si se producen errores al cargar los controladores de dispositivos. La salida de dmesg también muestra qué archivos de dispositivos se han asignado a qué discos, debería comparar esa información con la salida de echo $ROOT para asegurarse que el sistema de archivos está en el dispositivo que esperaba.

En el caso de que arregle el problema puede escribir exit para salir del entorno de depuración y continuar el proceso de arranque a partir del punto que falló. Por supuesto, tendrá que arreglar el problema subyacente y regenerar el «initrd» para que no vuelva a fallar en el siguiente arranque.

4.1.4.2. Intérprete de línea de órdenes de depuración durante el arranque con systemd

En el caso de que falle el arranque con systemd, aún es posible obtener una interfaz de línea de órdenes para depuración como «root» cambiando la línea de órdenes del núcleo. Si el arranque básico funciona, pero algunos servicios no llegan a iniciarse, puede ser útil añadir a los parámetros del núcleo la opción systemd.unit=rescue.target.

En cualquier otro caso, el parámetro del núcleo systemd.unit=emergency.target le proporcionará un intérprete de órdenes como usuario «root» en el primer momento en que sea posible. Sin embargo, esto se hace antes de que el sistema de archivos raíz se monte con permisos de lectura y escritura. Puede hacerlo manualmente con:

# mount -o remount,rw /
      

More information on debugging a broken boot under systemd can be found in the Diagnosing Boot Problems article.

4.1.5. Preparar un entorno seguro para la actualización

[Importante]Importante

If you are using some VPN services (such as tinc) consider that they might not be available throughout the upgrade process. Please see Sección 4.1.3, “Prepararse para la indisponibilidad de servicios”.

In order to gain extra safety margin when upgrading remotely, we suggest that you run upgrade processes in the virtual console provided by the screen program, which enables safe reconnection and ensures the upgrade process is not interrupted even if the remote connection process temporarily fails.

4.1.6. Verify network interface name support

Systems upgraded from older releases that still use network interfaces with names like eth0 or wlan0 are at risk of losing networking once they switch to buster; see Sección 5.1.6, “Migrating from legacy network interface names” for migration instructions.

4.2. Checking APT configuration status

The upgrade process described in this chapter has been designed for pure Debian stable systems. If your APT configuration mentions additional sources besides stretch, or if you have installed packages from other releases or from third parties, then to ensure a reliable upgrade process you may wish to begin by removing these complicating factors.

The main configuration file that APT uses to decide what sources it should download packages from is /etc/apt/sources.list, but it can also use files in the /etc/apt/sources.list.d/ directory - for details see sources.list(5). If your system is using multiple source-list files then you will need to ensure they stay consistent.

Below there are two methods for finding installed packages that did not come from Debian, using either aptitude or apt-forktracer. Please note that neither of them are 100% accurate (e.g. the aptitude example will list packages that were once provided by Debian but no longer are, such as old kernel packages).

$ aptitude search '~i(!~ODebian)'
$ apt-forktracer | sort
  

No se da soporte a actualizaciones de versiones de Debian anteriores a 9 (stretch). Por favor, siga las instrucciones en las Notas de publicación para Debian 9 para actualizarse primero a 9.

Se supone que su sistema se ha actualizado a la última revisión de stretch. Debe seguir las instrucciones descritas en Sección A.1, “Actualizar su sistema stretch” si su sistema no está actualizado o no está seguro de que lo esté.

You should also make sure the package database is ready before proceeding with the upgrade. If you are a user of another package manager like aptitude or synaptic, review any pending actions. If a package is scheduled in the package manager for installation or removal, it might interfere with the upgrade procedure. Note that correcting this is only possible if your APT source-list files still point to stretch and not to stable or buster; see Sección A.2, “Checking your APT source-list files”.

It is a good idea to remove obsolete packages from your system before upgrading.

4.2.1. La sección proposed-updates

If you have listed the proposed-updates section in your APT source-list files, you should remove it before attempting to upgrade your system. This is a precaution to reduce the likelihood of conflicts.

4.2.2. Fuentes no oficiales

If you have any non-Debian packages on your system, you should be aware that these may be removed during the upgrade because of conflicting dependencies. If these packages were installed by adding an extra package archive in your APT source-list files, you should check if that archive also offers packages compiled for buster and change the source item accordingly at the same time as your source items for Debian packages.

Algunos usuarios tienen versiones más nuevas de paquetes que están en Debian a través de recompilaciones no oficiales («backports», N. del T.) que están instaladas en su sistema stretch. Es muy probable que estos paquetes causen problemas durante la actualización y que den lugar a conflictos de archivos[4]. Puede encontrar más información sobre los conflictos de archivos y su resolución en la sección Sección 4.5, “Posibles problemas durante o después de la actualización”.

4.2.3. Desactivar el bloqueo de APT

Si ha configurado APT para que instale ciertos paquetes de una distribución distinta de la estable, por ejemplo la distribución testing (en pruebas, N. del T.), puede ser que haya cambiado la configuración de bloqueo (o pinning) de APT (almacenada en /etc/apt/preferences y /etc/apt/preferences.d/) para permitir que se actualicen paquetes con versiones más recientes que en la distribución estable. Puede encontrar más información sobre el bloqueo de APT en apt_preferences(5).

4.2.4. Verificar el estado de los paquetes

Independientemente del método que se use para actualizar, se recomienda que compruebe el estado de todos los paquetes primero, y que verifique que todos los paquetes se encuentran en un estado actualizable. La siguiente orden mostrará cualquier paquete que se haya quedado a medio instalar (estado Half-Installed) o en los que haya fallado la configuración (estado Failed-Config), así como los que tengan cualquier estado de error.

# dpkg --audit
    

También puede inspeccionar el estado de todos los paquetes de su sistema usando aptitude o con órdenes tales como:

# dpkg -l | pager
    

o

# dpkg --get-selections "*" > ~/curr-pkgs.txt
    

Es deseable eliminar cualquier paquete retenido (paquete en estado «hold», N. del T.) antes de actualizar. El proceso fallará si un paquete esencial para la actualización está bloqueado.

Note that aptitude uses a different method for registering packages that are on hold than apt and dselect. You can identify packages on hold for aptitude with

# aptitude search "~ahold" 
    

If you want to check which packages you had on hold for apt, you should use

# dpkg --get-selections | grep 'hold$'
    

Si ha cambiado y recompilado un paquete de forma local, y no le ha cambiado el nombre o marcado con una época («epoch», N. del T.) en la versión, debería retenerlo (ponerlo en hold) para evitar que se actualice.

The hold package state for apt can be changed using:

# echo package_name hold | dpkg --set-selections
    

Cambie hold por install para borrar la marca del paquete y que este deje de estar retenido.

If there is anything you need to fix, it is best to make sure your APT source-list files still refer to stretch as explained in Sección A.2, “Checking your APT source-list files”.

4.3. Preparing APT source-list files

Before starting the upgrade you must reconfigure APT's source-list files (/etc/apt/sources.list and files under /etc/apt/sources.list.d/).

APT will consider all packages that can be found via any configured archive, and install the package with the highest version number, giving priority to the first entry in the files. Thus, if you have multiple mirror locations, list first the ones on local hard disks, then CD-ROMs, and then remote mirrors.

Una versión se puede designar tanto por su nombre en clave (por ejemplo stretch, buster) como por su nombre de estado (esto es, oldstable, stable, testing, unstable). Referirse a la distribución por su nombre en clave tiene la ventaja de que nunca se sorprenderá si se produce una nueva versión y por esa razón es el caso que aquí se describe. Esto significa que va a tener que estar atento a los anuncios de nuevas versiones. Sin embargo, si utiliza el nombre del estado verá un número muy elevado de actualizaciones de paquetes en el mismo momento en el que la publicación de una nueva versión se haya realizado.

Debian ofrece dos listas de distribución de avisos que le permitirán mantenerse al día de la información relevante relacionada con las publicaciones de Debian:

4.3.1. Añadir fuentes en Internet para APT

On new installations the default is for APT to be set up to use the Debian APT CDN service, which should ensure that packages are automatically downloaded from a server near you in network terms. As this is a relatively new service, older installations may have configuration that still points to one of the main Debian Internet servers or one of the mirrors. If you haven't done so yet, it is recommended to switch over to the use of the CDN service in your APT configuration.

To make use of the CDN service, add a line like this to your APT source configuration (assuming you are using main and contrib):

deb http://deb.debian.org/debian buster main contrib

After adding your new sources, disable the previously existing deb lines by placing a hash sign (#) in front of them.

However, if you get better results using a specific mirror that is close to you in network terms, this option is still available.

Debian mirror addresses can be found at https://www.debian.org/distrib/ftplist (look at the list of Debian mirrors section).

Por ejemplo, suponga que su réplica más cercana es http://mirrors.kernel.org/. Si observa su contenido mediante un navegador web, comprobará que los directorios principales están organizados así:

      http://mirrors.kernel.org/debian/dists/buster/main/binary-s390x/...
      http://mirrors.kernel.org/debian/dists/buster/contrib/binary-s390x/...
    

To configure APT to use a given mirror, add a line like this (again, assuming you are using main and contrib):

deb http://mirrors.kernel.org/debian buster main contrib

Fíjese que dists se añade de forma implícita, y los parámetros tras el nombre de la versión se usan para expandir la ruta a varios directorios.

Again, after adding your new sources, disable the previously existing archive entries.

4.3.2. Añadir las réplicas locales para APT

Instead of using remote package mirrors, you may wish to modify the APT source-list files to use a mirror on a local disk (possibly mounted over NFS).

Por ejemplo, su réplica de paquetes puede encontrarse en /var/local/debian/, y tener directorios como estos:

      /var/local/debian/dists/buster/main/binary-s390x/...
      /var/local/debian/dists/buster/contrib/binary-s390x/...
    

Para usar esta ubicación con apt debe añadir esta línea a su archivo sources.list:

deb file:/var/local/debian buster main contrib

Fíjese que dists se añade de forma implícita, y los parámetros tras el nombre de la versión se usan para expandir la ruta a varios directorios.

After adding your new sources, disable the previously existing archive entries in the APT source-list files by placing a hash sign (#) in front of them.

4.3.3. Añadir fuentes para APT de medios ópticos

If you want to use only DVDs (or CDs or Blu-ray Discs), comment out the existing entries in all the APT source-list files by placing a hash sign (#) in front of them.

Asegúrese de que existe una línea en /etc/fstab que permita montar la unidad lectora de CD-ROMs en el punto de montaje /media/cdrom. Por ejemplo, si su lector de CD-ROM se encuentra en /dev/sr0, el archivo de configuración /etc/fstab debería incluir una línea similar a la siguiente:

      /dev/sr0 /media/cdrom auto noauto,ro 0 0
    

Fíjese que no debe haber espacios entre las palabras noauto,ro en el cuarto campo.

Para verificar que esto funciona, inserte un CD e intente ejecutar

# mount /media/cdrom    # this will mount the CD to the mount point
# ls -alF /media/cdrom  # this should show the CD's root directory
# umount /media/cdrom   # this will unmount the CD
    

Después, ejecute:

# apt-cdrom add
    

para añadir los datos a la base de datos de APT. Repita esta operación para cada CD-ROM de binarios de Debian que tenga.

4.4. Actualizar los paquetes

The recommended way to upgrade from previous Debian releases is to use the package management tool apt.

[Nota]Nota

apt is meant for interactive use, and should not be used in scripts. In scripts one should use apt-get, which has a stable output better suitable for parsing.

No olvide montar todas las particiones que necesite (en particular la raíz y /usr) en modo lectura y escritura, con una orden como:

# mount -o remount,rw /mountpoint
  

Next you should double-check that the APT source entries (in /etc/apt/sources.list and files under /etc/apt/sources.list.d/) refer either to buster or to stable. There should not be any sources entries pointing to stretch.

[Nota]Nota

Las líneas de fuentes de un CD-ROM pueden hacen referencia a inestable (unstable), aunque esto le parezca confuso no debería cambiarlo.

4.4.1. Grabar la sesión

Se recomienda encarecidamente que utilice el programa /usr/bin/script para guardar una transcripción de la sesión de actualización. Así, si ocurre algún problema, tendrá un registro de lo que ha sucedido y, si fuera necesario, podrá proporcionar la información detallada cuando envíe un informe de fallo. Para iniciar la transcripción, teclee:

# script -t 2>~/upgrade-busterstep.time -a ~/upgrade-busterstep.script
    

o similar. Si tiene que volver a ejecutar la transcripción (por ejemplo, si ha reiniciado el sistema) debería utilizar distintos valores de paso para indicar el paso de la actualización que se está transcribiendo. No ponga el archivo de transcripción en un directorio temporal como /tmp o /var/tmp (los archivos que hay en esos directorios se pueden borrar durante la actualización o durante el reinicio del sistema).

La transcripción también le permitirá revisar la información que se haya salido fuera de la pantalla. Simplemente acceda al terminal VT2 (utilizando Alt+F2) y, después de acceder al sistema, utilice less -R ~root/actualiza-a-buster.script para leer el archivo.

Después de completar la actualización puede terminar con la transcripción de script escribiendo exit en el indicador de línea de órdenes.

      TODO: (jfs) Could mention the script I provided in #400725 which is useful if
      you have not dumped the timing file
    

apt will also log the changed package states in /var/log/apt/history.log and the terminal output in /var/log/apt/term.log. dpkg will, in addition, log all package state changes in /var/log/dpkg.log. If you use aptitude, it will also log state changes in /var/log/aptitude.

Si ha utilizado la opción -t para script puede utilizar el programa scriptreplay para reproducir la sesión completa:

# scriptreplay ~/upgrade-buster.time ~/upgrade-buster.script
    

4.4.2. Actualizar las listas de paquetes

En primer lugar, tiene que descargar la lista con los paquetes disponibles para la nueva versión. Logrará esto si ejecuta:

# apt update
    

4.4.3. Asegúrese de que tiene suficiente espacio libre para actualizar

Antes de actualizar su sistema tiene que asegurarse de que tendrá suficiente espacio libre en su disco duro para poder seguir las instrucciones de una actualización completa del sistema que se describen en Sección 4.4.5, “Actualizar el sistema”. En primer lugar, cualquier paquete que sea necesario para la instalación se descargará y se almacenará en /var/cache/apt/archives (y en el subdirectorio partial/, mientras se está descargando), por lo que necesitará suficiente espacio libre en la partición donde se encuentre /var/ para poder descargar temporalmente los paquetes que se instalarán en su sistema. Después de la descarga, probablemente necesitará más espacio en las otras particiones de sistemas de ficheros para poder instalar tanto las actualizaciones de los paquetes (que podrían contener archivos binarios más grandes o más datos) como los nuevos paquetes que se necesiten en la actualización. Si su sistema no tiene suficiente espacio podría terminar con una actualización incompleta de la cual es difícil recuperarse.

apt can show you detailed information about the disk space needed for the installation. Before executing the upgrade, you can see this estimate by running:

# apt -o APT::Get::Trivial-Only=true full-upgrade
[ ... ]
XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
Need to get xx.xMB of archives. 
After this operation, AAAMB of additional disk space will be used.
    
[Nota]Nota

Puede que la ejecución de esta orden al principio del proceso de actualización genere un error, por las razones descritas en las siguientes secciones. En ese caso tiene que esperar para ejecutar esta orden hasta haber realizado una actualización mínima del sistema tal y como se describe en Sección 4.4.4, “Actualización mínima del sistema” antes de ejecutar esta orden para poder estimar el espacio de disco necesario.

If you do not have enough space for the upgrade, apt will warn you with a message like this:

E: You don't have enough free space in /var/cache/apt/archives/.
    

Si no tiene espacio suficiente para la actualización, asegúrese de hacer sitio antes de proceder. Puede hacer lo siguiente:

  • Remove packages that have been previously downloaded for installation (at /var/cache/apt/archives). Cleaning up the package cache by running apt clean will remove all previously downloaded package files.

  • Remove forgotten packages. If you have used aptitude or apt to manually install packages in stretch it will have kept track of those packages you manually installed, and will be able to mark as redundant those packages pulled in by dependencies alone which are no longer needed due to a package being removed. They will not mark for removal packages that you manually installed. To remove automatically installed packages that are no longer used, run:

    # apt autoremove
            

    También puede utilizar para encontrar paquetes redundantes deborphan, debfoster o cruft. No elimine a ciegas los paquetes que le indiquen estas herramientas, especialmente si utiliza opciones agresivas, distintas a las definidas por omisión, que pueden dar lugar a muchos falsos positivos. Se le recomienda encarecidamente que revise los paquetes que éstas le sugieren eliminar (esto es: sus contenidos, su tamaño y descripción) antes de eliminarlos

  • Elimine paquetes que consumen mucho espacio y que no necesita actualmente (siempre puede instalarlos después de la actualización). Puede utilizar la orden popcon-largest-unused para listar los paquetes que no utiliza que consumen más espacio si tiene instalado popularity-contest. Puede encontrar los paquetes que consumen más espacio con dpigs (disponible en el paquete debian-goodies) o con wajig (ejecutando wajig size). También puede encontrarlos con aptitude. Ejecute aptitude en el modo de terminal completo, seleccione Vistas y Nueva vista de paquetes plana, pulse la tecla l e introduzca ~i, a continuación pulse la tecla S e introduzca ~installsize. Una vez hecho esto, dispondrá de una lista de paquetes sobre la que puede trabajar.

  • Puede eliminar las traducciones y los archivos de localización del sistema si no los necesita. Para ello puede instalar el paquete localepurge, configurándolo para que solo se mantengan en el sistema algunas localizaciones específicas. Esto reducirá el espacio de disco consumido en /usr/share/locale.

  • Mueva de forma temporal a otro sistema o elimínelos de forma permanente, los registros del sistema que residen en /var/log/.

  • Utilice una ubicación temporal para /var/cache/apt/archives: puede utilizar una caché temporal en otro sistema de archivos (USB, dispositivo de almacenamiento, espacio en disco duro temporal, sistema de ficheros en uso, etc. ).

    [Nota]Nota

    No utilice un sistema montado a través de NFS dado que la conexión de red podría interrumpirse durante la actualización.

    Por ejemplo, si tiene una unidad USB montada en /media/usbkey:

    1. elimine los paquetes que se han descargado previamente para la instalación

      # apt clean
                      

    2. copie los contenidos de /var/cache/apt/archives a la unidad USB:

      # cp -ax /var/cache/apt/archives /media/usbkey/
                      

    3. monte el directorio de caché temporal sobre el actual:

      # mount --bind /media/usbkey/archives /var/cache/apt/archives
                      

    4. después de la actualización, restaure el directorio original /var/cache/apt/archives

      # umount /media/usbkey/archives
                      

    5. elimine el directorio /media/usbkey/archives.

    Puede crear una directorio de caché temporal en cualquier sistema de archivos montado en su sistema.

  • Realice un actualización mínima del sistema (consulte Sección 4.4.4, “Actualización mínima del sistema”) o una actualización parcial seguida de una actualización completa del sistema. Esto le permitirá actualizar el sistema parcialmente, lo que le permitirá limpiar la caché de paquetes antes de la actualización completa.

Note that in order to safely remove packages, it is advisable to switch your APT source-list files back to stretch as described in Sección A.2, “Checking your APT source-list files”.

4.4.4. Actualización mínima del sistema

En algunos casos, la realización directamente de una actualización completa (como se describe más abajo) podría tener como consecuencia la eliminación de un buen número de paquetes que quiere conservar. Le recomendamos por tanto un proceso de actualización en dos pasos. En primer lugar, una actualización mínima para resolver estos conflictos, seguido de una actualización completa como se describe en Sección 4.4.5, “Actualizar el sistema”.

Para hacer esto, ejecute primero lo siguiente:

# apt upgrade
    

Esto tiene como consecuencia que se actualicen los paquetes que se puedan actualizar en el sistema sin que sea necesario eliminar ni instalar ningún otro paquete.

La actualización mínima del sistema también puede ser útil cuando hay poco espacio libre disponible en el sistema y no puede ejecutarse la actualización completa debido a problemas de espacio.

If the apt-listchanges package is installed, it will (in its default configuration) show important information about upgraded packages in a pager after downloading the packages. Press q after reading to exit the pager and continue the upgrade.

4.4.5. Actualizar el sistema

Una vez haya realizado los pasos anteriores, estará en condiciones de seguir con la parte principal de la actualización. Ejecute:

# apt full-upgrade
    

Se realizará una actualización completa del sistema, esto es, se instalarán las versiones más recientes de los paquetes y se resolverán todos los posibles cambios de dependencias entre los paquetes de diferentes versiones. Si fuera necesario, se instalarán nuevos paquetes (normalmente, nuevas versiones de las bibliotecas o paquetes que han cambiado de nombre), y se eliminarán los paquetes obsoletos conflictivos.

Cuando esté actualizando desde un conjunto de CDs/DVDs/BDs, probablemente se le pedirá que inserte algunos discos específicos en distintos momentos durante la actualización. Puede que tenga que insertar el mismo disco varias veces; esto se debe a que algunos paquetes interrelacionados pueden estar dispersos en distintos discos.

New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version (displayed as held back). This can be resolved by either using aptitude to choose these packages for installation or by trying apt install package.

4.5. Posibles problemas durante o después de la actualización

Las siguientes secciones describen problemas conocidos que pueden aparecer durante la actualización a buster.

4.5.1. Dist-upgrade falla con «No se pudo realizar la configuración inmediata»

In some cases the apt full-upgrade step can fail after downloading packages with:

E: Could not perform immediate configuration on 'package'.  Please see man 5 apt.conf under APT::Immediate-Configure for details.
      

If that happens, running apt full-upgrade -o APT::Immediate-Configure=0 instead should allow the upgrade to proceed.

Another possible workaround for this problem is to temporarily add both stretch and buster sources to your APT source-list files and run apt update.

4.5.2. Eliminaciones esperadas

El proceso de actualización a buster puede solicitar la eliminación de paquetes en el sistema. La lista exacta de paquetes dependerá del conjunto de paquetes que tenga instalado. Estas notas de publicación proporcionan recomendaciones generales sobre estas eliminaciones pero, si tiene dudas, se recomienda que revise los paquetes que se van a eliminar propuestos por cada método antes de continuar. Encontrará más información de los paquetes obsoletos en buster en Sección 4.8, “Paquetes obsoletos”.

4.5.3. Bucles en Conflictos o Pre-Dependencias

Sometimes it's necessary to enable the APT::Force-LoopBreak option in APT to be able to temporarily remove an essential package due to a Conflicts/Pre-Depends loop. apt will alert you of this and abort the upgrade. You can work around this by specifying the option -o APT::Force-LoopBreak=1 on the apt command line.

It is possible that a system's dependency structure can be so corrupt as to require manual intervention. Usually this means using apt or

# dpkg --remove package_name
    

para eliminar algunos de los paquete problemáticos, o

# apt -f install
# dpkg --configure --pending
    

En casos extremos, puede que necesite forzar la reinstalación con una orden como:

# dpkg --install /path/to/package_name.deb
    

4.5.4. Conflictos de archivo

No deberían producirse conflictos entre archivos si actualiza de un sistema stretch puro, pero sí pueden producirse si ha instalado versiones nuevas no oficiales («backports», N. del T.). Si se produce un conflicto entre archivos se mostrará con un error similar al siguiente:

Unpacking <package-foo> (from <package-foo-file>) ...
dpkg: error processing <package-foo> (--install):
trying to overwrite `<some-file-name>',
which is also in package <package-bar>
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
<package-foo>
    

Puede intentar resolver los conflictos entre archivos forzando a que se elimine el paquete mencionado en la última línea del mensaje de error:

# dpkg -r --force-depends package_name
    

After fixing things up, you should be able to resume the upgrade by repeating the previously described apt commands.

4.5.5. Cambios de configuración

Se le harán preguntas sobre la configuración o reconfiguración de diversos paquetes durante la actualización. Cuando se le pregunte si debería reemplazarse algún archivo en el directorio /etc/init.d, o el archivo /etc/manpath.config con la versión que propone el mantenedor del paquete, normalmente deberá responder para asegurar la consistencia del sistema. Siempre puede volver más tarde a las versiones antiguas, ya que quedan guardadas con la extensión .dpkg-old.

Si no está seguro de lo que debe hacer, anote el nombre del paquete o archivo, y revise la situación más adelante. Recuerde que podrá buscar en el archivo de transcripción de la instalación y revisar la información que apareció en pantalla durante la actualización.

4.5.6. Cambio de la sesión en consola

Si está vd. ejecutando el proceso de actualización utilizando la consola local del sistema es posible que en algunos momentos durante la actualización se cambie la consola a una vista distinta y deje de ver el proceso de actualización. Esto puede suceder, por ejemplo, en sistemas de escritorio cuando se reinicia el gestor de escritorios.

Para recuperar la consola donde se estaba realizando la actualización tendrá que utilizar la combinación de teclas Ctrl+Alt+F1 (si está en la pantalla de arranque gráfico) o Alt+F1 (si está en la consola de modo texto) para volver al terminal virtual 1. Reemplace F1 por la tecla de función que tenga el mismo número que el terminal virtual donde se estaba realizando la actualización. También puede utilizar la combinación Alt+Flecha Izquierda o Alt+Flecha Derecha para conmutar entre los distintos terminales de modo texto.

4.6. Actualización de su núcleo y paquetes relacionados

    TODO: need to be reviewed with information from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=571255
    [elbrus, 2019] is this section still relevant? That bug was from squeeze.
  

Esta sección explica cómo actualizar su núcleo e identifica los posibles problemas que pueden darse con relación a esta actualización. Puede o bien instalar uno de los paquetes linux-image-* que ofrece Debian o compilar un núcleo personalizado desde el código fuente del mismo.

Tenga en cuenta que gran parte de la información de esta sección se basa en la suposición de que está utilizando uno de los núcleos modulares de Debian, conjuntamente con initramfs-tools y udev. Parte de la información aquí presentada puede no ser relevante para usted si utiliza un núcleo a medida que no necesita un initrd o si utiliza un generador de initrd distinto.

4.6.1. Instalación de un metapaquete del núcleo

When you full-upgrade from stretch to buster, it is strongly recommended that you install a linux-image-* metapackage, if you have not done so before. These metapackages will automatically pull in a newer version of the kernel during upgrades. You can verify whether you have one installed by running:

# dpkg -l "linux-image*" | grep ^ii | grep -i meta
    

Si no observa ningún mensaje, entonces necesitará instalar un nuevo paquete «linux-image» a mano o instalar un metapaquete «linux-image». Para ver una lista de los metapaquetes «linux-image» disponibles, ejecute:

# apt-cache search linux-image- | grep -i meta | grep -v transition
    

Si no está seguro de qué paquete instalar, ejecute la orden uname -r y busque un paquete con un nombre similar. Por ejemplo, si ve 2.6.32-5-amd64, le recomendamos que instale linux-image-amd64. También puede utilizar apt-cache para ver una descripción más larga de cada uno de los paquetes para así ayudarle a realizar una mejor elección de entre los que hay disponibles. Por ejemplo:

# apt-cache show linux-image-amd64
    

You should then use apt install to install it. Once this new kernel is installed you should reboot at the next available opportunity to get the benefits provided by the new kernel version. However, please have a look at Sección 5.1.11, “Cosas a hacer después de la actualización y antes de reiniciar” before performing the first reboot after the upgrade.

For the more adventurous there is an easy way to compile your own custom kernel on Debian. Install the kernel sources, provided in the linux-source package. You can make use of the deb-pkg target available in the sources' makefile for building a binary package. More information can be found in the Debian Linux Kernel Handbook, which can also be found as the debian-kernel-handbook package.

If possible, it is to your advantage to upgrade the kernel package separately from the main full-upgrade to reduce the chances of a temporarily non-bootable system. Note that this should only be done after the minimal upgrade process described in Sección 4.4.4, “Actualización mínima del sistema”.

4.7. Prepararse para la siguiente distribución

Una vez hecha la actualización hay ciertas cosas que puede hacer para prepararse para la siguiente versión de la distribución.

4.7.1. Purgando los paquetes eliminados

En general es recomendable purgar los paquetes eliminados. Esto es particularmente necesario si se han eliminado en una actualización anterior (p.ej. por la actualización a stretch) o eran parte de paquetes de terceros. Se han dado muchos casos en los que los programas de init.d antiguos han causado problemas.

[Atención]Atención

En general, al purgar un paquete también se purgarán sus ficheros de registro. Por lo que puede ser recomendable hacer una copia de seguridad de éstos antes de hacerlo.

La siguiente orden mostrará una lista de todos los paquetes eliminados que puedan haber dejado ficheros de configuración en el sistema (si los hay):

# dpkg -l | awk '/^rc/ { print $2 }'
    

The packages can be removed by using apt purge. Assuming you want to purge all of them in one go, you can use the following command:

# apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
    

Si utiliza aptitude, también puede utilizar las siguientes órdenes de forma alternativa a las listadas antes:

# aptitude search '~c'
# aptitude purge '~c'
    

4.8. Paquetes obsoletos

La versión buster, aunque introduce muchos paquetes nuevos, también retira o deja de distribuir algunos paquetes que estaban disponibles en stretch. No existe un mecanismo de actualización para estos paquetes obsoletos. Aunque nada le impide que siga usando paquetes obsoletos si así lo desea, el proyecto Debian deja de dar soporte de seguridad para éstos un año después de la publicación de buster[5] y no se ofrecerá otro tipo de soporte durante este tiempo. Lo recomendable es reemplazar dichos paquetes con las alternativas disponibles, si es que existen.

Hay muchas razones por las que un paquete puede haberse eliminado de la distribución, a saber: no hay mantenimiento por parte de los desarrolladores originales, no hay ningún desarrollador en Debian que esté interesado en mantener los paquetes, la funcionalidad que ofrecen la ofrece ahora otros programas (o una nueva versión), o ya no se consideran aptos para distribuirse en buster debido a los errores que presentan. En este último caso los paquetes puede que sigan estando presentes en la distribución inestable.

Some package management front-ends provide easy ways of finding installed packages that are no longer available from any known repository. The aptitude textual user interface lists them in the category Obsolete and Locally Created Packages, and they can be listed and purged from the commandline with:

# aptitude search '~o'
# aptitude purge '~o'
  

A menudo podrá encontrar más información de por qué un paquete fue eliminado en el Sistema de seguimiento de fallos de Debian. Debería consultar tanto los informes de fallos del propio paquete como los informes de fallos archivados del pseudo-paquete ftp.debian.org.

Puede consultar una lista de los paquetes obsoletos de Buster en Sección 5.1.9, “Paquetes obsoletos notables”.

4.8.1. Transitional dummy packages

Some packages from stretch may have been replaced in buster by transitional dummy packages, which are empty placeholders designed to simplify upgrades. If for instance an application that was formerly a single package has been split into several, a transitional package may be provided with the same name as the old package and with appropriate dependencies to cause the new ones to be installed. After this has happened the redundant dummy package can be safely removed.

The package descriptions for transitional dummy packages usually indicate their purpose. However, they are not uniform; in particular, some dummy packages are designed to be kept installed, in order to pull in a full software suite, or track the current latest version of some program. You might also find deborphan with the --guess-* options (e.g. --guess-dummy) useful to detect transitional dummy packages on your system.



[1] Si la prioridad de debconf se fija al valor «muy alto» no se le realizarán preguntas de configuración, pero los servicios que dependen de las respuestas por omisión pueden no arrancar si las respuestas por omisión no aplican a su sistema.

[2] Por ejemplo: servicios DNS o DHCP, especialmente si no existe ninguna redundancia o mecanismo de alta disponibilidad. En el caso de DHCP los usuarios pueden quedarse desconectados de la red si el tiempo de mantenimiento de las direcciones es inferior al tiempo que tarda el proceso de actualización en completarse.

[3] Esta funcionalidad puede deshabilitarse si añade el parámetro panic=0 dentro de los parámetros del arranque.

[4] El sistema de gestión de paquetes no permite por regla general que un paquete elimine o reemplace un archivo que pertenezca a otro paquete a menos que se haya indicado que el nuevo paquete reemplaza al antiguo.

[5] O hasta que se publique una nueva versión en ese tiempo. Habitualmente solo se da soporte a dos versiones estables en un momento determinado.