¿Por qué lograr un Debian jessie sin systemd?
Si, lo admito, soy un Troll anti-systemd, ya hace algún tiempo había escrito una herramienta que me permitía llevar una instalación desde netinstall a un estado estable y asegurado de Debian GNU/Linux (dicho script, acá) sin embargo, montar un Debian jessie sin systemd implica un par de cambios que, gracias a la gente de Debian, son bastante sencillos.
Acá, una receta de cómo pasar un Debian Jessie de systemd a sysvinit.
Paso 1: preparar tus repositorios
Preparar tus repositorios APT para incorporar los repositorios de DEVUAN (Fork de Debian, contienen una versión de bsdutils y de udev no compatibles con systemd) y el apt-pinning para evitar que algún paquete con dependencia a systemd lo instale.
1: agregar el repositorio
cat <<E_O_APT > /etc/apt/sources.list.d/devuan.list # Devuan deb http://packages.devuan.org/devuan/ jessie main E_O_APT
2: Agregar el apt-pinning necesario
cat <<EOF > /etc/apt/preferences.d/systemd.pref Package: systemd-sysv Pin: release o=Debian Pin-Priority: -1 Package: systemd Pin: origin "" Pin-Priority: -1 Package: *systemd* Pin: origin "" Pin-Priority: -1 EOF
Con esto, ningún paquete “systemd” tendría prioridad para instalación.
Entonces actualizamos y agregamos el keyring de devuan
apt-get update
apt-get install devuan-keyring
Con esto, tenemos el sistema preparado para instalar sysvinit (y desinstalar systemd)
Paso 2: Instalar sysvinit
Hay que instalar el init-replacement de systemd:
1: Instalar sysvinit
apt-get install sysvinit-core sysvinit sysvinit-utils
El detalle es que systemd y sus procesos alternos, corren en el PID-1, es necesario reiniciar el equipo para poder remover systemd, no sin antes
2: indicarle al sistema, vía GRUB, que deberá usar sysvinit
Archivo: /etc/default/grub
sed -i -e "s/GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"init=\/sbin\/init\"/" /etc/default/grub
Tenemos que agregar a la regla GRUB_CMDLINE_LINUX la opción “init=/sbin/init” para evitar que se siga usando systemd y en el próximo reinicio, usar sysvinit.
3: actualizamos GRUB
update-grub
4: Reiniciamos el equipo
reboot
Al finalizar, el equipo contará con sysvinit y se habrá desactivado systemd, ahora hay que desinstalarlo.
Paso 3: Remover systemd
La remoción de systemd es a dos pasos, primero el metapaquete, luego la librería:
1: remover systemd
apt-get remove --purge --auto-remove systemd systemd-sysv
2: remover libsystemd0
apt-get remove --purge libsystemd-daemon0 libsystemd0
NOTA: este último paso solicitará que asuman la decisión de, o quedarse con libsystemd0 (por problemas de dependencias) o en segunda selección, hacer un “downgrade” de bsdutils de la versión de Debian Jessie a la versión que está en Devuan, realizaremos dicha selección del paquete bsdutils.
Y listo!, sistema con sysvinit y sin systemd.
Advertencias
- Systemd está altamente integrado a algunas soluciones, la más notable es Gnome, si usan gnome ya no pueden escapar de systemd, pero con XFCE, KDE u otros, es opcional; si intentan desinstalar systemd en un sistema con gnome, quedarán virtualmente sin entorno gráfico.
- Systemd además está integrado a udev y bsdutils (en la actual versión de systemd, udev forma parte integral del núcleo de systemd), por lo que la razón de usar el repositorio de DEVUAN es para obtener udev y bsdutils desde el fork de Debian sin systemd que DEVUAN lleva.
- Habrá aplicaciones que simplemente no podrán ser instaladas en Debian sin systemd porque fueron migradas hace ya algún tiempo, como esta receta es para un sistema Debian desde netinstall para servidores, me es indiferente no poder instalar pulseaudio o gnome-core.
The post Cómo montar Debian Jessie sin systemd en 3 simples pasos appeared first on Phenobarbital con Soda.