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