the website of dither8

A brief look at Void Linux

Published on 2019-02-26

Article expanded mid-2020. Fixes 2021-09-15.

Minimalism

The minimalism Void offers is very clear from browsing the homepage. The community goes to many lengths to keep it minimal. All disc images offer an lightweight init system and some images offer an alternative libc called musl.

Musl is very good. It provides standard C language functions to many programs on the system. It aims to replace the current defacto libc: glibc. musl aims to be more standards compliant and lightweight. The trade-off is performance vs efficiency, musl excels at the later. Perhaps the biggest issue is that almost every binary compiled for Linux is compiled against glibc. If you have the source code available, it's a matter of recompiling. But for proprietary software such as games, you will likely have to run using Flatpak (which includes it's own version of glibc).

Void has ditched both the complicated systemd and the ageing sysvinit, for the init system called "runit". This handles both the initialisation of the OS and a service supervision. I am quite taken back by the simplicity of runit, where starting and stopping services is as simple as creating or removing a symlink.

systemd is a controversial topic in the Linux land. It's complexity is undeniable, it's ever expanding feature scope is confusing. I will refer you to this article for a much more in-depth look at systemd, it is long but well worth a read if you are interested.

Installation

Installation was probably the hardest part of the initial setup. However, I found a pretty good tutorial in the end which guided me through. Only problem is that tutorial only shows setup for legacy boot, not UEFI.

UPDATE 2021-09-15: It's actually a lot more easy than mentioned above. The only really hard part is partitioning and creating file systems. You can use any partition tool you prefer, cfdisks is what Void uses. If you use an UEFI system (most likely), start by wiping your drive with a GPT partition table. Then you need to create a 500MB vFAT boot partition and then fill the rest of drive with an EXT4 partition. I haven't setup Void in a few years, so you might want to look at a newer YouTube tutorial.

The only other piece of advice I have, is to make sure to select "Local" under the Source menu on the installer, because regardless of what desktop environment is baked into the disc image, the netinstall will install with no desktop shell.

Once installed I was quite impressed with how un-bloated the disc images are, it really is a blank state for you to install software on top of.

Package selection

Void Linux has a very good package selection (at least if you are a desktop user), and since Void is a rolling release distro, it updates software very quickly. I found some software that was in the Void repos that aren't in more popular distros like Debian/Ubuntu or Fedora. This is perhaps because of less bureaucracy around getting a package into Void, this doesn't mean that Void has no checks and balances, it just mean that it is simpler.

During my time using Void, I submitted several patches for the packages, bringing them up-to-date with the upstream source. The source packages are very easy to understand and update, if you have used Arch Linux, Alpine Linux, or FreeBSD ports, you should be familiar with Void's packages. It is a text file that is one half the package metadata, other half the pre-install, build, install, post-install scripts. It is very similar to a make file, but is far more integrated into the package manager, automatically pulling in the dependencies from the same repo.

The fact that all software is up-to-date and the wide choice for desktop users makes this one of my favourite distributions on the desktop. I really came to appreciate that I could get all my favourite open-source software in one place (and up-to-date), where as with other distros I would have to rely on third-party repos, containers, or having to compile myself.

The package manager xbps is terminal driven only, I am used to using cli to install my programs, so this was no issue. I should point out that xbps is actually split out into different sub-programs such as xbps-install and xbps-remove.

Final Thoughts

I was very happy during my time with Void. I ended up moving away from it after an update with GNOME gvfs prevented it from working, a risk with any rolling-release distro. I reached out to the devs but they weren't able to reproduce the issue, causing me to give up.

A shame really. Still though Void remains an interesting Linux distro. It is perfect for someone who wants a minimalist distro, but doesn't want the pain that comes with having to set something up from scratch.