Cómo actualizar Debian Stretch a Debian Buster
Llegó la hora
En esta ocasión actualizaremos nuestra máquina de laboratorio de Debian 9 a Debian 10, ya le va tocando. Antes de realizar la actualización de cualquier sistema operativo es recomendable tener una copia de seguridad del sistema o por lo menos de los datos que no queremos perder, ya que aunque es un proceso sencillo, cualquier fallo en el proceso de actualización puede dejar el sistema operativo totalmente dañado, como por ejemplo un corte de luz o fallo hardware.
La actualización no sobrescribe nada del directorio /home , pero si es posible que algunas aplicaciones o entornos de escritorio sean sobrescritas con nuevos valores, por ejemplo, si tienes la barra de aplicaciones customizada, esta la perderás y tendrás que volver a customizar o bien averiguar donde guarda esa customización y una vez que se actualice el sistema , sobrescribir el nuevo.
Tener en cuenta que durante la actualización habrá servicios que se detendrán por lo tanto si es un sistema de producción, planificarlo, porque además como se actualizará el kernel es necesario reiniciar. Si la actualización se hace de forma remota(solo si no tenemos entorno de escritorio instalado, porque si no fallará), asegurarse que podremos llegar a la máquina ante cualquier imprevisto, si es una máquina física recomiendo hacer la actualización in-situ, si es virtual simplemente tener acceso al hypervisor. ¿Por qué decimos esto? Se corre el riesgo de perder la red cuando el sistema anterior utiliza nomenclatura eth0,wlan0 una vez actualizado a Buster.
Nota: No se puede actualizar de versiones más antiguas sin haber sido actualizadas previamente hasta Debian 9.
Empecemos
En nuestro caso al ser una máquina de laboratorio en VirtualBox simplemente realizaremos un snapshot, seleccionando la máquina y haciendo click en Tomar, le daremos un nombre por ejemplo PreActualización, con una descripción si queremos como "Antes de actualizar a Debian 10"
Una vez que tenemos copia de seguridad y nos hemos asegurado que ante cualquier inconveniente siempre podremos acceder a nuestra máquina ya sea virtual o física, procedemos abriendo un terminal para comprobar que software de terceros tenemos instalado que no utilice los repositorios puros de Debian 9.
sudo aptitude search '~i(!~ODebian)'
Si por cualquier motivo no encontrará el comando
sudo apt install aptitude
Y volvemos a lanzar el comando anterior.
Esto nos devolvería una lista de paquetes obsoletos o de terceros, donde los obsoletos sería recomendable desinstalar y los de terceros comprobar que tienen soporte para Debian 10, es más, para evitar posibles conflictos lo mejor es desinstalar el listado que nos devuelva antes de proceder con la actualización y volver a instalar lo que necesitamos tras completar la actualización. Además si tiene paquetes instalados de versiones de prueba, cambie a sus versiones estables o elimínelos.
En nuestro caso no tenemos paquetes obsoletos o de terceros por lo que procedemos primero a actualizar nuestro Debian 9 actual
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
Comprobamos que no tenemos problemas de coherencia o paquetes rotos.
sudo dpkg -C
sudo apt-mark showhold
Antes de proceder a la actualización si hemos obtenidos inconsistencias o paquetes rotos es necesario solucionarlo, para ello pueden ver detalles con
sudo dpkg --audit
O utilizar el siguiente comando para ver el detalle de todos los paquetes instalados en su sistema
sudo dpkg -l | pager
Hecho todo esto con nuestro sistema Debian 9 actualizado y solucionado cualquier problema de paquetes procedemos a actualizar los repositorios, haciendo un backup primero
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back
A continuación sustituimos los repositorios de Stretch a Buster de una manera sencilla en el fichero /etc/apt/sources.list
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list
Este comando nos sustituirá la palabra stretch por buster en /etc/apt/sources.list , quedando así en nuestro caso.
deb http://ftp.es.debian.org/debian/ buster main
deb-src http://ftp.es.debian.org/debian/ buster main
deb http://security.debian.org/debian-security buster/updates main contrib
deb-src http://security.debian.org/debian-security buster/updates main contrib
# stretch-updates, previously known as 'volatile'
deb http://ftp.es.debian.org/debian/ buster-updates main contrib
deb-src http://ftp.es.debian.org/debian/ buster-updates main contrib
Realizamos lo mismo con las demás listas si habéis comprobado el soporte con Debian 10, aunque recomendamos que dichas listas sean movidas a otro directorio y una vez actualizado procedáis a introducir las listas actualizadas.
sudo sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/*.list
Actualizamos el indice de los paquetes
sudo apt update
Esto nos devolverá al final del todo el número de paquetes actualizables y que ejecutemos lo siguiente si queremos verlos
sudo apt list --upgradable
Por último realizamos el upgrade
sudo apt upgrade
Nos aparecerá la lista de nuevos cambios presionamos q para continuar
Y la siguiente pantalla si queremos reiniciar los servicios sin preguntar, en nuestro caso le decimos que si porque tenemos previsto cualquier incidente o si fuera un servidor de producción estaría comunicada su intervención a quien corresponda.
Para finalizar
sudo apt dist-upgrade
Y reiniciamos para comprobar que todo ha salido satisfactoriamente.
Podéis eliminar los paquetes que ya no son necesarios con
sudo apt autoremove
Pero no lo vamos a dejar ahí, culminaremos actualizando el kernel a la última versión desde las fuentes aprovechando que tenemos la copia de seguridad recién hecha y en caso de sistemas de producción está planificado.
Actualizar el kernel a la última versión estable kernel-5.6.3
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
OJO2!!! Antes de nada, compilar desde las fuentes un kernel requiere unos cuantos GB libres, 25 en este caso, por lo tanto asegúrate que tienes espacio disponible.
Primero instalamos dependencias
sudo apt install gcc libncurses5-dev dpkg-dev bison flex git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc build-essential libncurses5-dev fakeroot rsync libelf-dev
Nos descargamos el último kernel desde https://kernel.org en /root/kernel por ejemplo siendo root, en este caso no lo vamos hacer en /tmp como en otros post, por si luego queremos reconfigurar, puesto que hay que reiniciar y en /tmp se nos borraría.
cd /root/
mkdir kernel
cd /root/kernel
curl -lO https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.3.tar.xz
Lo descomprimimos
tar -xvf linux-5.6.3.tar.xz
Entramos en el directorio
cd linux-5.6.3
Lanzamos
make menuconfig
Donde nos aparecerá una gui de configuración, no entraremos en detalles por lo tanto elegimos General Setup pero echarle un vistazo.
Después de seleccionar General Setup, seleccionamos Local version -append to kernel release
He introducimos .config
Ahora Save/Exit/Exit
Para evitar un error actualizando de esta forma, en el fichero .config que se acaba de crear comentaremos las líneas que contengan CONFIG_SYSTEM_TRUSTED_KEYS de manera rápida
sed -i 's/CONFIG_SYSTEM_TRUSTED_KEYS/#CONFIG_SYSTEM_TRUSTED_KEYS/g' .config
Y construimos el paquete
make deb-pkg -j2
Recordar que con la bandera -j indicaremos los procesadores de los que disponemos para que sea más rápido. Cuando os haga la pregunta del certificado simplemente enter.
Este proceso llevará un buen rato, os podéis tomar un café o tres mientras. Cuando finalice, encontraremos los .deb en el nivel superior, por lo tanto ejecutamos
cd .. && dpkg -i linux-*.deb
Reiniciamos y si todo ha salido bien, escribimos en un terminal para comprobar nuestro kernel.
uname -a
Ahora podemos eliminar el kernel antiguo o dejarlo, de momento recomiendo dejarlo por si os surgiera algún problema con la nueva versión.
Si durante todo este proceso habéis tenido algún tipo de problema escribirnos con el error que os da o cual es el fallo que estáis teniendo y os echamos un cable encantados.
Nota: Cuando ya hayáis compilado a vuestro gusto eliminar la carpeta que creamos /root/kernel para disponer de los 25GB que ocupa.
Un placer, vivan el presente.
TL.
Gracias por leer nuestros posts.
No hay comentarios