El día de hoy quise darle un poco de adrenalina a mi rutina y decidí migrar mi instalación de Devuan ASCII (estable) a Devuan Beowulf (testing) en mi estación de trabajo. En este artículo explico los pasos necesarios y cuento mi experiencia.
Hasta el día de la fecha contaba con una instalación de Devuan ASCII 2.1. Esta primera versión punto de ASCII fue lanzada precisamente el mes pasado (octubre de 2019):
root@hal9000:/home/emi# lsb_release -a No LSB modules are available. Distributor ID: Devuan Description: Devuan GNU/Linux 2.1 (ascii) Release: 2.1 Codename: ascii
Al mismo tiempo estaba utilizando un kernel Linux 4.19 proveniente de los backports de ASCII:
root@hal9000:/home/emi# uname -a Linux hal9000 4.19.0-0.bpo.5-amd64 #1 SMP Debian 4.19.37-5+deb10u2~bpo9+1 (2019-08-16) x86_64 GNU/Linux
Actualmente la versión estable (stable) de Devuan es "ASCII" (Devuan 2), basada en Debian Stretch (Debian 9). Mientras que la versión de desarrollo o testeo (testing en jerga Debian, o "en desarrollo" en jerga Devuan) es "Beowulf" (Devuan 3), basada en Debian "Buster" (Debian 10).
La cuestión es que, por problemas de dependencias entre este kernel (proveniente desde los backports) y el resto de las librerías del sistema, me veía privado de instalar VirtualBox. Este inconveniente fue causado por haberle dado mayor prioridad a los paquetes provenientes desde los backports, algo que en su momento mencioné que podía traer muchos problemas de dependencias e incompatibilidades con el resto de los componentes del sistema.
En definitiva, como en la mayoría de los casos resulta imposible volver a una versión anterior de un paquete (a causa del mecanismo de resolución de dependencias y disponibilidad de paquetes de versiones previas), el único camino es hacia adelante. Pasemos entonces todo el sistema a testing, para dejar atrás esta mezcla entre paquetes de testing y estables·
Editar el archivo de configuración de repositorios del gestor APT y cambiar "ascii" por "beowulf". Deshabilitar los backports eliminando o comentando la línea correspondiente.
root@hal9000:/home/emi# nano /etc/apt/sources.list
La configuración final es la siguiente:
# deb http://deb.devuan.org/merged/ beowulf main contrib non-free deb http://deb.devuan.org/merged/ beowulf-security main contrib non-free deb http://deb.devuan.org/merged/ beowulf-updates main contrib non-free
Actualizar la base de datos de paquetes:
root@hal9000:/home/emi# apt-get update
Actualizar nuevos paquetes sin eliminar:
root@hal9000:/home/emi# apt-get upgrade

Al finalizar se muestran las novedades. Siempre es conveniente repasar el listado hasta el final para ver qué cambios se introducen:
apt-listchanges: News --------------------- apt (1.8.0~alpha3) unstable; urgency=medium The PATH for running dpkg is now configured by the option DPkg::Path, and defaults to "/usr/sbin:/usr/bin:/sbin:/bin". Previous behavior of not changing PATH may be restored by setting the option to an empty string. Support for /etc/apt/auth.conf.d/ has been added, see apt_auth.conf(5). -- Julian Andres Klode <jak@debian.org> Tue, 18 Dec 2018 15:02:11 +0100 apt (1.6~rc1) unstable; urgency=medium Seccomp sandboxing has been turned off by default for now. If it works for you, you are encouraged to re-enable it by setting APT::Sandbox::Seccomp to true. -- Julian Andres Klode <jak@debian.org> Fri, 06 Apr 2018 14:14:29 +0200 apt (1.6~beta1) unstable; urgency=medium APT now verifies that the date of Release files is not in the future. By default, it may be 10 seconds in the future to allow for some clock drift. Two new configuration options can be used to tweak the behavior: Acquire::Check-Date Acquire::Max-DateFuture These can be overridden in sources.list entries using the check-date and date-future-max options. Note that disabling check-date also disables checks on valid-until: It is considered to mean that your machine's time is not reliable. -- Julian Andres Klode <jak@debian.org> Mon, 26 Feb 2018 13:14:13 +0100
(...sigue hasta el infinito)
Luego proceder con la actualización completa, reemplazando y eliminando paquetes:
root@hal9000:/home/emi# apt-get dist-upgrade

Para finalizar, efectuar una limpieza de paquetes obsoletos:
root@hal9000:/home/emi# apt-get autoremove root@hal9000:/home/emi# apt-get autoclean
Reiniciar el sistema:
root@hal9000:/home/emi# reboot
Se observa que la versión del sistema operativo ahora es "Devuan GNU/Linux 3 (beowulf)":
emi@hal9000:~$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Devuan GNU/Linux 3 (beowulf) Release: 3 Codename: beowulf emi@hal9000:~$ uname -a Linux hal9000 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 GNU/Linux
La versión del kernel no ha cambiado pues estaba utilizando la misma, obtenida desde los backports de ASCII.
Problemas y soluciones
Tuve un solo problema al finalizar la migración y fue quedarme sin sonido pues falla al iniciar PulseAudio:
emi@hal9000:~$ start-pulseaudio-x11 Connection failure: Connection refused pa_context_connect() failed: Connection refused
El script /usr/bin/start-pulseaudio-x11
falla al intentar iniciar. Este es un bug bastante común que se soluciona iniciando PulseAudio de la siguiente forma:
emi@hal9000:~$ pulseaudio --start
Referencias
- Devuan Release Information - Devuan GNU+Linux Free Operating System
- DebianReleases - Debian Wiki
- /etc/apt/sources.list - Devuan GNU+Linux Free Operating System