Migrate to Devuan Jessie with minimalism

Leggi in Italiano: Migrazione minimalista verso Devuan Jessie

This guide will take you through what is necessary to migrate to Devuan, configure apt for minimalism, remove D-Bus from the system and manage the network.

To begin the migration start by editing the sources.list so we can update the package indexes with apt-get.

root@debian:~# editor /etc/apt/sources.list

Comment out all other lines in your sources.list and add the following.

deb http://auto.mirror.devuan.org/merged jessie main
deb http://auto.mirror.devuan.org/merged jessie-updates main
deb http://auto.mirror.devuan.org/merged jessie-security main
deb http://auto.mirror.devuan.org/merged jessie-backports main

Note that release ascii uses deb.devuan.org not auto.mirror.org. auto.mirror.devuan.org is for Jessie only.

Update the package indexes so we can fetch packages from the Devuan repository.

root@debian:~# apt-get update

Before installing any new packages we need to install the devuan keyring then update the package lists again so we can authenticate packages.

root@debian:~# apt-get install devuan-keyring --allow-unauthenticated

Now that the Devuan keyring is installed you should update the indexes again so that packages are authenticated from now on.

root@debian:~# apt-get update

Finish the upgrade process.

root@debian:~# apt-get dist-upgrade

Thanks to a tip from [TheFlash] you can debloat your system in a very neat way. We will configure apt to treat recommended packages as unimportant.

root@devuan:~# editor /etc/apt/apt.conf.d/01lean

Add the following lines:

APT::Install-Recommends "0";
APT::AutoRemove::RecommendsImportant "false";

Whilst most recommended packages are not of an important nature, there are some packages you should protect from removal.

For the security of your browsers and other applications, we should make sure that SSL certificates will always be available by installing the ca-certificates package. Only skip this step if you know what you're doing.

root@devuan:~# apt-get install ca-certificates

The SSL certificates package will now be marked as a manually installed package, instead of a dependency or recommended package. If the next step shows packages you wish to keep you can do the same for them before confirming any removals.

root@devuan:~# apt-get autoremove --purge

Removing dbus is more involved and requires some compromises.

Mounting volumes as a user

An alternative to D-Bus dependent auto-mounting is to setup the mount points yourself, and install a file manager that can mount volumes without D-Bus.

Since we will be editing fstab you should back it up first.

root@devuan:~# cp /etc/fstab /etc/fstab.backup

Now you can edit your fstab.

root@devuan:~# editor /etc/fstab

Append the following to your fstab, substituting the correct devices node for your USB drive if it's different. Be sure to set the user option to allow non-root users to mount the drive.

/dev/sdb1        /media/usb0    auto    user,noauto    0 0

You can plug in a USB drive and use the lsblk utility to determine the correct device nodes.

Create the mount point where USB drives can be mounted.

root@devuan:~# mkdir /media/usb0

Plug in a usb drive and test your work as a regular user.

user@devuan:~$ mount -v /media/usb0
user@devuan:~$ umount -v /media/usb0

Most desktop environments require dbus, so a window manager should be chosen instead. We will use fluxbox as it's intuitive, lightweight and can be built upon easily.

root@devuan:~# apt-get install fluxbox menu fbpager feh

Use update-alternatives to set startfluxbox as your default window manager.

root@devuan:~# update-alternatives --config x-window-manager

If you want to include a window manager you can use WDM.

root@devuan:~# apt-get install wdm

Otherwise the startx script can be invoked after you log in to your user account at the console.

user@devuan:~$ startx

For a file manager that can mount removable devices without an auto-mounter you can use xfe.

root@devuan:~# apt-get install xfe

A good choice for a browser is firefox-esr as it does not depend on dbus directly.

root@devuan:~# apt-get install firefox-esr

Instead of of using a dbus dependent network manager we will configure the network for use with multiple interfaces manually.

root@devuan:~# editor /etc/network/interfaces

Here is a configuration for multiple wireless networks on the same interface. By adding a stanza for a network you use only some of the time, you can override your default network configuration when it suits you. For more information see the Debian reference about switchable network configuration which I refered to for the wireless section.

allow-hotplug wlan0
iface wlan0 inet dhcp
        wpa-ssid myssid
        wpa-psk mypassphrase

iface work inet dhcp
        wpa-ssid myssid
        wpa-psk mypassphrase

So for example you can change to the work network using ifdown wlan0 and ifup wlan0=work as root.

Wired network configuration is a lot simpler.

# Automatic network configuration, brought up only when a link is detected.
allow-hotplug eth0
iface eth0 inet dhcp

# Static network configuration, always brought up on boot.
auto eth1
iface eth1 inet static

For more information about interfaces see man 5 interfaces.

A one time reboot is required to remove systemd because it is running as pid1.

root@devuan~# reboot

You can now safely remove systemd and dbus.

root@devuan:~# apt-get purge systemd systemd-shim libsystemd0 dbus

The gnome desktop is not currently usable without systemd. We can use a regex to catch all gnome packages so that we don't have to remove them individually.

root@devuan~# apt-get purge .*gnome.*

It may now be necessary to protect the xorg package from removal.

root@devuan~# apt-get install xorg

You may want to debloat your recommends and orphaned packages again.

root@devuan:~# apt-get autoremove --purge

This is a good time to remove old package archives left over from your Debian installation.

root@devuan:~# apt-get autoclean

This work is released under the Creative Commons Attribution-ShareAlike 4.0 International CC BY-SA 4.0 license. All trademarks are the property of their respective owners. This work is provided “AS IS” and comes with absolutely NO warranty.