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:
- RaspberryPI (RaspiOS 64bits)
- OrangePI Zero (Armbian)
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