De nuevo la actualización de Debian suele crear algunos problemas esta vez he tardado 6 meses en actualizar todos mis servidores. Aquí de nuevo apunto todos los detalles para minimizar los problemas.
Todos los detalles están en las notas de la versión de Debian 13 y en el listado de problemas conocidos en los siguientes enlaces:
- Actualizaciones desde Debian 12
- Debian 13 Release Notes
- https://gist.github.com/yorickdowne/3cecc7b424ce241b173510e36754af47
Advertencia
Si vas a actualizar una RaspberryPI no sigas las instrucciones de este documento. He preparado uno específico, esta actualización en Raspios no funciona por problemas de dependencias.
Aquí dejo un listado con notas generales sobre las pruebas que he hecho:
- Posible problema de re-conexión SSH. Recomiendo usar mosh y tmux/screen simultáneamente.
- Cuidado, a veces las interfaces de red se pueden renombrar, leer esto https://www.debian.org/releases/trixie/release-notes/issues.en.html#network-interface-names-may-change
- Actualizar por SSH a través de TINC. Me ha funcionado sin cortar la conexión SSH.
- Dovecot: Cuidado, cambia de 2.3 a 2.4 y ya no es compatible la configuración.
- Cuidado con mdadm, tras la instalación dejó de funcionar
- Problema con grub-cloud-amd64 (Problema cloud) (lo detallo a continuación)
Muestro el listado de programas que he tenido que ir arreglando tras la actualización. Además incluyo una algunas anotaciones sobre cada problema.
- Apache: En algunos servidores se me ha cambiado el modo de ejecución, si tienes php cuidado que no se cambie a
Prefork, suelo tenerlo en "Event", se comprueba mediante
apachectl -V | grep -i mpm - Docevot: Este es grave, la configuración es incompatible, igual tienes que rehacerla
Actualizando a Debian 13
Antes de empezar asegurarse de tener todo Actualizado con:
apt update && apt upgrade -y
apt --purge autoremove
Ahora toca cambiar las fuentes a Debian 13 - Trixie en /etc/apt/sources.list, fíjate que para la actualización he quitado los repositorios proposed-updates y backports para evitar problemas de dependencias. No es recomendable actualizar con estos repositorios activos. Además, revisa todo esto antes de empezar la actualización:
- No tener ningún fichero en /etc/apt/preferences.d/ con pinning activo
- No tener activa otras fuentes de terceros en /etc/apt/sources.list.d/ o en debian.sources
Tras ello el contenido de /etc/apt/sources.list debe ser el siguiente:
deb https://ftp.debian.org/debian/ trixie contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ trixie-updates contrib main non-free non-free-firmware
deb https://security.debian.org/debian-security/ trixie-security contrib main non-free non-free-firmware
# deb https://ftp.debian.org/debian/ trixie-proposed-updates contrib main non-free non-free-firmware
# deb https://ftp.debian.org/debian/ trixie-backports contrib main non-free non-free-firmware
Nota
Los ficheros de fuentes han cambiado de formato y se deben cambiar (modernizar) posteriormente a la actualización. No olvides este paso para evitar futuros problemas
La actualización ya se hace mediante el mismo procedimiento que en Debian 12, en dos pasos:
apt update
apt upgrade --without-new-pkgs
apt full-upgrade
Al final se debe hacer limpieza, cuidado con el segundo comando que si no tienes las dependencias bien resueltas puede eliminar configuraciones necesarias y romper algunos servicios.
apt --purge autoremove
apt purge ?config-files
Note olvides de modernizar las fuentes APT siguiendo las siguientes instrucciones.
Modernizando las fuentes APT semi-automáticamente
Las fuentes de APT de la nueva versión se pueden obtener de una imagen oficial de Debian 13, pero se incluye un método semi-automático para modernizarlas. Presento las 2 opciones:
Opción 1: Ejecutar el comando:
apt modernize-sources
Opción 2: Manualmente consiste en:
- Copiar el contenido indicado en el fichero /etc/apt/sources.list.d/debian.sources
- Eliminar el fichero /etc/apt/sources.list .
Types: deb
URIs: https://ftp.debian.org/debian/
Suites: trixie
Components: contrib main non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://ftp.debian.org/debian/
Suites: trixie-updates
Components: contrib main non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://security.debian.org/debian-security/
Suites: trixie-security
Components: contrib main non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Problema cloud
En uno de los servidores se paró la actualización con lo siguiente: .. code-block:: text
Configurando grub-cloud-amd64 (0.1.1) ... Instalando para plataforma i386-pc. mdadm: /dev/md does not appear to be an md device grub-install: error: error en ioctl RAID_VERSION: Función ioctl no apropiada para el dispositivo. dpkg: error al procesar el paquete grub-cloud-amd64 (--configure): el subproceso instalado paquete grub-cloud-amd64 script post-installation devolvió el código de salida de error 1 e encontraron errores al procesar: grub-cloud-amd64 needrestart is being skipped since dpkg has failed E: Sub-process /usr/bin/dpkg returned an error code (1)
Solución:
Cuidado con no dejar el sistema sin arranque, revisa el arranque y cuidado com mdadm si tienes RAID:
- Revisar si es EFI o BIOS.
- Eliminar el paquete problemático grub-cloud-amd64
- Reinstalar grub
Lo siguiente funcionó en mi caso:
apt purge grub-cloud-amd64
update-grub
grub-install /dev/nvme0n1 # o el disco que corresponda