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

Nota

La actualización de RaspiOS se puede hacer siguiendo los pasos indicados anteriormente, pero se queda el kernel sin actualizar.

Aunque no se actualice el kernel, la RaspberryPI funciona correctamente. Como es recomendable actualizarlo, he preparado un documento adicional con el procedimiento en Actualizar RaspberryPI a Debian 12

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