Actualizar RaspberryPI de Debian 12 a Debian 13


La primera instalación que he hecho ha sido un lío, he tenido que eliminar paquetes con dpkg --remove --force-all y, muchos por problemas de sobreescritura de ficheros de configuración. Así que buscando por la red he probado otro método basado en:

  1. https://www.linkedin.com/pulse/upgrading-raspberry-pi-4-debian-13-trixie-mohd-rosnizam-emcfc
  2. https://gist.github.com/jauderho/5f73f16cac28669e56608be14c41006c

Al final en todas las actualizaciones de Debian 12 a Debian 13 el formato de las fuentes APT ha cambiado en Debian 13 y es recomendable actualizarlas.

Para actualizar las fuentes hay 2 opciones:

  1. Mantener las fuentes APT antiguas sustituyendo bookworm por trixie.
  2. Modernizar las fuentes APT al nuevo formato antes de hacer la actualización.

Presento el primer procedimiento que es el más sencillo, la modernización de las fuentes APT la dejo para la siguiente sección.

Así, el comienzo es como siempre, asegurarse de tener todo actualizado con:

apt update
apt upgrade -y
apt --purge autoremove

Después hay que cambiar las fuentes APT en /etc/apt/sources.list y en /etc/apt/sources.list.d/raspi.list

Primero en /etc/apt/sources.list cambiar:

deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security/ trixie-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware

después en el fichero /etc/apt/sources.list.d/raspi.list a:

deb http://archive.raspberrypi.com/debian/ trixie main

Para comprobar que todo está correcto y poder seguir con la actualización hay que actualizar la lista de paquetes con:

apt update

Si todo fue bien, el siguiente comando hace la actualización evitando los problemas de dependencias. Este comando no debería crear conflictos de paquetes.

sudo apt full-upgrade -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confnew" \
--purge --auto-remove rpd-wayland-all+ rpd-x-all+

Tras finalizar y reiniciar siempre es recomendable eliminar los ficheros de configuración de paquetes ya desinstalados con:

apt purge ?config-files

Mejor no olvidarse de modernizar las fuentes APT al nuevo formato por alguno de los 2 métodos que se indican a continuación en 2 secciones diferentes.

Modernizando las fuentes APT semi-automáticamente

Las fuentes de APT de la nueva versión las he obtenido de la imagen oficial de RPI - Operating system images.

Se pueden copiar o intentar modernizarlas con el comando indicado pero las de Raspberry Pi no se actualizan correctamente, les falta la firma GPG. Hay que añadirla manualmente después de modernizar las fuentes APT.

Paso 1: Ejecutar el comando:

apt modernize-sources

Paso 2: Añadir la firma GPG de Raspberry Pi editando el fichero /etc/apt/sources.list.d/raspi.sources para que quede así:

Types: deb
URIs: http://archive.raspberrypi.org/debian/
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/raspberrypi-archive-keyring.gpg

En alguna instalación este último paso puede que no funcione por que falte la clave GPG de Raspberry Pi, en ese caso hay que instalar el paquete raspberrypi-archive-keyring con:

apt install raspberrypi-archive-keyring

Modernizando las fuentes APT manualmente

Alternativamente se pueden cambiar las fuentes APT manualmente usando las fuentes originales de la imagen oficial RaspiOS-13. Pego aquí las fuentes de los 2 ficheros involucrados.

Paso 1. Vaciar las fuentes APT actuales

La mejor opción es comentar todas las líneas de los ficheros /etc/apt/sources.list y /etc/apt/sources.list.d/raspi.list. Además, en el directorio /etc/apt/sources.list.d/ hay que crear los ficheros debian.sources y raspi.sources con el contenido que se indica a continuación (extraído de la imagen oficial RaspiOS-13)

Paso 2. Fichero /etc/apt/sources.list.d/debian.sources:

Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.pgp

Types: deb
URIs: http://deb.debian.org/debian-security/
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.pgp

Paso 3. Fichero /etc/apt/sources.list.d/raspi.sources:

Types: deb
URIs: http://archive.raspberrypi.org/debian/
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/raspberrypi-archive-keyring.gpg
#Debian Linux