A brief look at Void Linux
The minimalism of Void is very clear from simply 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 functions to any program written in the C programming language, 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. Prehaps the biggest issue is that almost every binary compiled for Linux is compiled against glibc. If you have the source code available, it is 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 aging sysvinit, for the init system called "runit". This handles both the initalisation 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 familar with the topic.
Installation was probably the hardest part of the inital 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.
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 ontop of.
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 prehaps because of less beurcracy 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 familar with Void's packages. It is a text file that is one half the package meta data, other half the pre-install, build, install, post-install scripts. It is very similar to a
make file, but is far more intergrated into the package manager, automatically pulling in the dependecys 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 distrbutions on the desktop. I really came to appreate 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
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 will always stick out to me when choosing a 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.