Blog

Debian 12: cambios y actualizaciones desde Debian 11

El pasado 10 de junio se publicó Debian 12, que viene bajo el nombre de “Bookworm”. Esta versión del popular sistema operativo tendrá soporte hasta 2028, y tras su salida, Debian 11 “Bullseye” ha pasado a ser oldstable aunque su soporte se mantiene hasta 2026. Mientras, Debian 10 “Stretch” pasa a ser oldoldstable y ya no recibe actualizaciones de seguridad, aunque aún tiene soporte LTS hasta el año que viene.

Esta nueva versión trae consigo más de 11.000 paquetes nuevos, elevando así el total a más de 64.000 paquetes. Por otra parte, unos 6.000 paquetes se han eliminado y marcado como obsoletos. Así mismo, la versión del kernel de Linux trae la 6.1, lo que supone un importante salto respecto a la versión 5.1 que traía Debian 11.

En este artículo vamos a comentar algunos de los cambios que más nos han llamado la atención y que creemos que se deben tener en cuenta para aquellos que vayan a actualizar a esta nueva versión. Os incluimos una guía de cómo realizar dicha actualización

¡Comenzamos!

Adiós a rsyslog... al menos, por defecto

Durante años y años los administradores de sistemas hemos consultado el syslog, localizado en /var/log/syslog, para obtener información sobre eventos y/o problemas que se estuvieran produciendo en una máquina.

Una novedad importante de Debian 12 es que, en una instalación limpia del sistema, el paquete rsyslog ya no se instala por defecto. Por suerte, si quieres seguir haciendo uso de esta herramienta, te alegrará saber que el paquete sigue estando incluido en el repositorio oficial de Debian, por lo que tan solo debes realizar una instalación manual con:


apt install rsyslog

En el caso de que actualices desde Debian 11 a Debian 12, el paquete no se eliminará, por lo que en este caso no debes preocuparte.

Una última novedad a tener en cuenta es que el formato de los timestamps del syslog ha cambiado:

Antes:

timestamps_syslog_antes.png

Después:

timestamps_syslog_nuevo.png

Este cambio es un detalle menor para muchos usuarios, pero que deberás tener en cuenta si tienes algún proceso que analice los logs del sistema y esté configurado para identificar trazas a partir del timestamp. La buena noticia es que el formato se puede personalizar. Tienes más información sobre cómo hacerlo en la documentación aquí.

¡Cuidado con la resolución DNS!

Otra novedad a tener en cuenta es que si utilizas el servicio systemd-resolved para la resolución DNS, dicho paquete no se instalará automáticamente al actualizar a Debian 12, incluso si ya lo tenías instalado en tu Debian 11.

Lo que deberás hacer es instalar manualmente este paquete una vez hayas completado la actualización del sistema. Hasta que no hagas esto, es muy posible que la resolución DNS no funcione debido a la ausencia de este servicio en tu sistema.

Ten en cuenta que systemd-resolved no es el resolver por defecto en Debian. Si no tienes configurada tu máquina para utilizar este servicio, y por el contrario estás utilizando el resolver por defecto (fichero /etc/resolv.conf), puedes ignorar todo lo comentado ya que no te afectará.

Versión de PHP

El soporte para PHP 7.4 finalizó a finales de 2022. Debido a esto, el paquete que incluye el repositorio oficial de Debian se corresponde con la versión 8.2.

En el hipotético caso de que vayas a realizar una instalación limpia de Debian 12 y migrar a esta máquina tu aplicación que corre sobre una versión de PHP antigua, ten esto muy en cuenta ya que tendrás que instalar otro repositorio que incluya la paquetería para tu versión de PHP.

No obstante, desde STR Sistemas lo que recomendamos es que a estas alturas tengas tu aplicación ya actualizada a PHP 8 en lugar de seguir utilizando versiones sin soporte de seguridad.

version_php.png

Estos son solo algunos de los cambios que se han introducido en Debian 12 "Bookworm". Podéis encontrar el listado completo de novedades (apartado 2) así como el de cosas a tener en cuenta a la hora de actualizar y posibles problemas (apartado 5) en el siguiente enlace oficial.

Instalación de paquetes de Python con pip

En Debian 12 ya no se pueden instalar módulos de Python de manera global con un sencillo “pip install” como se podía hacer hasta ahora (¡gracias al usuario @NITEMAN_es en Twitter por hacérnoslo saber!). Si intentamos realizar la instalación, nos aparecerá el siguiente mensaje:

error_python.png

¿Por qué sucede esto?

Porque la PEP 668 (PEP significa “Python Environment Proposal” y son documentos destinados a la comunidad de Python cuyas finalidades son proveer información, soluciones, propuestas y mejoras) provee un mecanismo para que el sistema pueda decirle a pip que no instale paquetes fuera de un entorno virtual.

La justificación es que históricamente se vienen dando conflictos entre los gestores de paquetes de las diferentes distribuciones y las herramientas de gestión de paquetes de Python, como pip. Un ejemplo de estos conflictos son conflictos sobre la propiedad de los archivos.

Debian 12 ha decidido incluir este mecanismo, así que deberemos hacer las instalaciones de paquetes de Python dentro de un entorno virtual. Aquellos con experiencia en Python no necesitarán una guía, pero en este artículo nos dirigimos a todo tipo de público, así que a continuación te explicamos cómo instalar paquetes de Python con pip dentro de un entorno virtual.

Primero deberás crear un entorno virtual con:


python 3 -m venv /<path>/<del>/<entorno>

A continuación activamos el entorno ejecutando el script “activate” dentro del directorio “bin” en el path del entorno:


source <path>/<del>/<entorno>/bin/activate

Y por último ejecutar la instalación como tal:


pip install <paquete>

 

paquetes_python.png

Existe una forma de saltarse esta nueva restricción e instalar paquetes con pip de forma global, y es añadiendo el flag “--break-system-packages” al final del comando, aunque se deberán asumir los riesgos que conlleva. En el siguiente ejemplo instalamos el mismo paquete que antes pero de manera global y sin necesidad de crear un entorno virtual:

paquetes_python_sin_entorno_virtual.png

Cómo actualizar de Debian 11 a Debian 12

Una vez repasadas algunas de las novedades, vamos a ver cómo actualizar a Debian 12 una máquina que ya cuenta con la versión anterior. Tenemos lista nuestra máquina con Debian 11:

debian_11.png

Siempre que nos vayamos a enfrentar a un proceso tan importante como es actualizar un sistema operativo, lo primero de todo es hacer un backup. Hay cientos de opciones y métodos diferentes para hacer backups y no vamos a entrar en detalle en este artículo, pero lo importante es tener un punto al que volver en caso de que algo salga mal.

¿Ya tienes tu backup listo? Genial, pues el primer paso en este proceso es actualizar todos los paquetes que tengas instalados en la máquina. Para ello ejecuta:


apt update
apt upgrade

A continuación toca editar el fichero /etc/apt/sources.list ya que aquí es donde APT lee las fuentes desde las cuales tiene que buscar paquetes y tenemos que decirle que nuestra versión es Bookworm. Para ello hay que reemplazar todas las ocurrencias de “bullseye” por “bookworm”. Puedes utilizar cualquier editor de texto como pueda ser nano o vim.

bullseye_bookworm.png

También tendremos que editar en el directorio /etc/apt/sources.list.d/ el fichero backports, así como los correspondientes a otros repositorios que hayamos añadido en el pasado. De nuevo, el proceso consiste en reemplazar todas las ocurrencias de “bullseye” por “bookworm”:

bullseye_bookworm_1.png

Nos estamos acercando al final. El siguiente paso es ejecutar otro update para actualizar las fuentes que acabamos de modificar:


apt update

Y posteriormente el siguiente comando para actualizar los paquetes:


apt upgrade --without-new-pkgs

Durante este proceso de actualización de paquetes te saltarán prompts advirtiéndote de diferentes cosas, como por ejemplo este en el que se nos avisa de que ciertos servicios se reiniciarán. Te recomendamos que leas detenidamente cada prompt ya que no es lo mismo actualizar tu máquina personal que un servidor de un cliente en producción, donde el reinicio de determinados servicios puede tener afectación.

prompts.png

Una vez finalizada la actualización de paquetes toca actualizar el sistema. Por fin, vamos a pasar de Debian 11 a Debian 12. Para ello simplemente ejecuta este comando:


apt full-upgrade

Y de nuevo volverán a saltar prompts que deberás leer detenidamente para elegir la acción más conveniente.

Por último, ejecuta lo siguiente:


update-grub

Y finalmente reinicia la máquina con:


reboot

Una vez que la máquina vuelva a arrancar podemos comprobar que ya tenemos Debian 12 instalado:

debian_12.png

Esperamos que este artículo os haya sido útil y os haya ayudado a actualizar vuestro Debian 11 a la versión 12.

¡Hasta la próxima!

 

Newsletter de STR Sistemas

Suscríbete a nuestra newsletter para recibir contenido interesante del mundo DevOps y artículos escritos por nuestros técnicos

¡Usamos cookies propias y de terceros para mejorar tu experiencia en esta web! Si sigues navegando, consientes y aceptas estas cookies en tu ordenador, móvil o tablet.

Más información sobre las cookies y cómo cambiar su configuración en tu navegador aquí.

x