Actualizando a Debian 12


Actualizar Debian está en multitud de sitios, estos son algunas notas sobre el método que estoy utilizando para cambiar de Debian 11 a Debian 12. Es bastante similar a Actualizando a Debian 11

Incluyo instrucciones generales y detalles para:

Actualizando Debian

Antes de empezar asegurarse de tener todo Actualizado con:

apt update && apt upgrade -y
apt --purge autoremove

Antes de seguir la actualización revisa en este listado si tienes instalado lo siguiente y revisa los detalles

  • Exim4: directiva no existente (exim4)
  • Spamassassin: renombrado del servicio (spamassassin)
  • Bind9: directiva no existente (bind9)
  • PHP: no activa la configuración php8.2-fpm (php8.2)
  • Roundcube: la configuración hay que rehacerla (roundcube)
  • Zabbix: Actualizar los repositorios LTS y reinstalar (zabbix)
  • Nextcloud: Asegurarse tener la ultima version, (nextcloud)

En servidores simplemente cambiando las fuentes y haciendo una primera actualización parcial. En primer lugar se cambian las fuentes, he puesto todas debes revisar si no te interesa alguna de ellas, y el cambio es en /etc/apt/sources.list a:

deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ bookworm-proposed-updates contrib main non-free non-free-firmware
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware

Después para evitar problemas de dependencias lo mejor es hacer la actualización en dos pasos como se indica a continuación. No es necesario reiniciar hasta que termine la actualización.

apt update
apt upgrade --without-new-pkgs
apt full-upgrade

Detalles para algunos programas

Los detalles siguientes se refieren a correcciones necesarias para las configuración específicas que tengo en algunos servidores. Pero también pueden servir por si ocurren problemas similares

Exim4

Durante la actualización falla la configuración al no existir la directiva message_linelength_limit. En mi configuración aparece en:

  • /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp_smarthost
  • /etc/exim4/conf.d/transport/transport/30_exim4-config_remote_smtp

Hay que eliminar o comentar esa parte de la configuración. Para revisar los errores de configuración se puede usar:

update-exim4.conf --check

Spamassassin

En esta versión de Debian se ha renombrado el servicio de spamassassin a spamd. En mi configuración tengo personalizado el inicio del mismo desde el fichero /etc/default/spamassassin y ya no funciona esa personalización.

Hay que pasar los cambios al fichero /etc/default/spamd y después borrar el fichero /etc/default/spamassassin que ya no es necesario.

Bind9

Parece que ha desparecido algunas directivas de la configuración. El listado está en Changes to be aware of when moving from BIND 9.16 to 9.18 En mi caso es dnssec-enable y se puede revisar la configuración con:

named-checkconf
/etc/bind/named.conf.options:37: option 'dnssec-enable' no longer exists

PHP8.2

Cuando se tiene el servidor Web con PHP en modo FPM, la configuración php8.2-fpm no se activa por defecto. Basta con activar la configuración:

cd /etc/apache2/conf-enabled
ln -s ../conf-available/php8.2-fpm.conf
rm php7.4-fpm.conf

Nota

En caso de necesitar mantener php-7.4-fpm simultáneamente se pueden activar los repositorios de Sury.org

Al final de este documento se resume: Problemas de migración de Webs

RoundCube

Por algún motivo no se actualiza bien y se queda el paquete configurado pero sin instalar. Basta con reinstalarlo de nuevo:

apt install roundcube  roundcube-plugins roundcube-plugins-extra

La configuración por defecto es mejor rehacerla copiando el ejemplo por defecto:

cp defaults.inc.php config.inc.php

En mi caso la base de datos está con DebConf así que del fichero config.inc.php elimino toda la sección SQL_DATABASE, es decir, todas las entradas config['db_*'] y las sustituyo por:

// Do not set db_dsnw here, use dpkg-reconfigure roundcube-core to configure database!
include_once("/etc/roundcube/debian-db-roundcube.php");

Además tengo las siguientes directivas cambiadas:

$config['htmleditor'] = 1;
$config['create_default_folders'] = true;

$config['plugins'] = [
    'emoticons', 'filesystem_attachments',
    'help', 'newmail_notifier', 'password', 'userinfo',
    'vcard_attachments', 'zipdownload'
];

Zabbix

La versión que uso es la 6.0 LTS y tiene paquetes oficiales para Debian 12 en https://www.zabbix.com/documentation/6.0/en/manual/installation/upgrade/packages/debian_ubuntu:

wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-5+debian12_all.deb
dpkg -i zabbix-release_6.0-5+debian12_all.deb

La actualización desinstala la interfaz web, pero solo hay que reinstalarla ya que la configuración no se pierde.

apt install zabbix-apache-conf zabbix-frontend-php

Nextcloud

Tras la actualización a php8.2 de Debian 12 la instalación de Nextcloud no funciona y hay que migrarla desde la línea de comandos pero antes debe estar actualizada a la última versión compatible con php7.4. Si actualizas sin tener actualizado Nextcloud será necesario añadir php7.4 a Debian 12 usando el repositorio de Sury contado en la siguiente sección.

El siguiente comando actualiza a la última versión antes de migrar:

sudo -u www-data php7.4 --define apc.enable_cli=1 /var/www/nextcloud/updater/updater.phar

Tras la actualización a Debian 12 hay que volver a actualizarlo mediante:

sudo -u www-data php8.2 --define apc.enable_cli=1 /var/www/nextcloud/updater/updater.phar

Problemas de migración de Webs

Para mantener varias versiones de PHP funcionando hay que usar el repositorio https://deb.sury.org. Es el empaquetador oficial de Debian, por lo que las versiones estables son las mismas que las incluidas en los repositorios oficiales Debian.

Para añadirlo hay que añadir la clave pública PGP y añadir la dirección del repositorio:

wget https://packages.sury.org/php/apt.gpg -O /etc/apt/trusted.gpg.d/sury.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury.list

Actualizando RaspiOS 64bits / Raspbian 12

Esta actualización no presenta dificultades adicionales, solo hay que cambiar los repositorios APT y añadir el adicional de raspberrypi Las fuentes de APT de la nueva versión las he obtenido de la imagen oficial de https://www.raspberrypi.com/software/operating-systems/ . Hay que cambiar las fuentes APT en /etc/apt/sources.list a

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

y después en /etc/apt/sources.list.d añadir raspi.list con el siguiente contenido:

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

Se sigue el mismo procedimiento anterior

apt update

tras esto el procedimiento de actualización parcial debe funcionar perfectamente usando los siguientes comandos sin reiniciar:

apt upgrade --without-new-pkgs
apt full-upgrade

OrangePI Zero

La actualización de Armbian a Debian 12 es similar a la de RaspiOS, pero cambiando las fuentes en dos ubicaciones: /etc/apt/sources.list y /etc/apt/sources.list.d/armbian.list.

Los contenidos son los siguientes, en el fichero Fichero /etc/apt/sources.list:

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

y en el fichero Fichero /etc/apt/sources.list.d/armbian.list:

deb http://apt.armbian.com bookworm main bookworm-utils bookworm-desktop

Después el procedimiento de nuevo es similar:

apt update
apt upgrade --without-new-pkgs
apt full-upgrade
#Debian Linux