El 17 de junio de 2017 fue liberada la última versión estable de Debian: Debian 9 "Stretch". A estas alturas no hace falta aclarar el disgusto que systemd genera día a día en una porción importante de la comunidad GNU/Linux, especialmente entre los SysAdmins. Ya sea por cuestiones éticas, libertad de elección, o por sus terribles bugs, es probable que muchos deseemos mantener nuestros sistemas libres de systemd. Especialmente los debianitas, a quienes se les ha "embuchado" por la fuerza este engendro llamado systemd.

Claro está que Debian fue forkeado en 2014, y recientemente Devuan lazó su primera versión estable. Sin embargo, es probable que aún muchos usuarios prefieran optar por mantener Debian en sus tservidores, o tal vez quieran utilizar esta última versión estable, pero libre de systemd. Es por ello que en este artículo voy a explicar cómo remover/eliminar completamente systemd de un servidor Debian 9 Stretch para volver al robusto SystemV.

Este artículo está orientado a sistemas servidores, no a sistemas de escritorio. Es probable que ninguno de los sistemas de escritorio principales provistos por Debian 9 funcione sin systemd, y es algo que no he probado ni me interesa probar. El objetivo es poder instalar un servidor Debian 9 sin systemd.

Básicamente se deben seguir exactamente los mismos pasos que compartí anteriormente para Debian Jessie.

Partiendo de un sistema Debian Stretch recién instalado y funcionando, el primer paso consiste en instalar el sistema de inicio clásico SystemV:

# apt-get install sysvinit-core sysvinit-utils

Luego, instalar el archivo inittab:

# cp /usr/share/sysvinit/inittab /etc/

Una vez instalado el sistema de inicio SystemV, es necesario configurar GRUB para que inicie con SystemV en lugar de systemd. Editar el archivo de configuración de GRUB /etc/default/grub:

# nano /etc/default/grub

La variable GRUB_CMDLINE_LINUX_DEFAULT debe quedar configurada de la siguiente forma:

GRUB_CMDLINE_LINUX_DEFAULT="init=/lib/sysvinit/init console=hvc0 console=ttyS0"

Guardar los cambios y actualizar GRUB ejecutando update-grub:

# update-grub

Reiniciar el sistema para que inicie con SystemV:

# reboot

Luego de reiniciar el sistema es posible desinstalar systemd, para ello ejecutar:

# apt-get remove --purge --auto-remove systemd

Tener en cuenta que este comando, además de eliminar systemd, elimina cualquier paquete que dependa del mismo.

Luego, configurar el gestor de paquetes APT para que jamás vuelva a intalar systemd, ninguna de sus dependencias, ni ningún paquete que contenga la palabra "systemd" en el nombre. Esto incluye systemd-shim, el cual provee emulación de funciones de systemd para paquetes que dependen del mismo, y tal vez puede ser deseado ya que permite instalar paquetes dependientes de systemd en sistemas sin systemd.

En la configuración de APT, agregar el siguiente archivo:

# nano /etc/apt/preferences.d/systemd

Con el siguiente contenido:

Package: systemd
Pin: release *
Pin-Priority: -1'

Package: *systemd*
Pin: release *
Pin-Priority: -1

Esto impide que APT instale systemd ni ningún paquete que contenga la palabra systemd (*systemd*) en su nombre.

Por último, verificar el correcto funcionamiento de apt:

Enjoy init freedom!

Referencias

How to remove systemd from a Debian jessie/sid installation


Tal vez pueda interesarte


Compartí este artículo