A while ago, I initiated the "If Linux Is About Choice ..." thread about why there is no choice of inits during an initial install.
Since that time, I've tested several systemd-less distros[1] as well as Stretch as replacements for my aging Wheezy system. With Stretch my plan was to see if I could replace systemd as the init without removing it just leaving its components (some or all as necessary) to meet dependencies without it breaking the system That way there would be no need for third party repos or jumping through hoops to keep a systemd-less working. I figured it would be a somewhat difficult, time consuming process. However, I made a discovery during these tests: The Debian developers had already done it for me. They made switching from systemd as the init to sysvinit or runit easy just by issuing a couple commands. Here's what you do. First, install Stretch as you normally would, systemd, et al. I chose LXDE for the GUI as it has no direct systemd dependencies, and it uses Openbox as the window manager which I normally use in lieu of a desktop environment anyway. This was quicker and easier testing-wise than starting with a terminal-based system as I normally would, and building up from there. To switch to sysvinit, as root: apt-get install sysvinit-core and reboot. Done! systemd components are still on the hard drive, except systemd-sysv has been removed. There is also no systemd supervision either as far as I can tell. To switch to runit-init is an easy 2-step process. Do a standard install as before.[2] Then add runit supervision first before installing runit-init. As root: apt-get install runit-systemd reboot, then apt-get install runit-init Reboot. Done! The latter command removes systemd-sysv during the install. These new init set ups survive apt-get upgrade or dist-upgrade even if systemd components are upgraded. Systemd as init does not get reactivated. Tested and verified. I can find no systemd pinning either. I now have two Stretch systems running in VirtualBox. One a full LXDE desktop using runit for both the init and supervision, and the other with just Openbox and lxpanel as the GUI, and sysvinit and runit for supervison. No problems at all with either. B [1] AntiX, MX Linux, SalixOS and Void Linux. [2] With either above options, you can't go from an init other than systemd to another init. apt-get install <chosen init> fails due to systemd-sysv being missing.