Void Linux - (What could become) a great and unique Linux distribution

Posted on 2018-03-30. Last updated on 2018-04-19.
The design and philosophy about Void Linux is really great and the system as a whole is really great too. However, the project has no clear guidelines or ruleset about anything and each developer seems to accept or reject pull requests on his own whims. There is a serious lack of public information about who's doing what, and there are no project goals. Also because of a lack of maintainers, many packages has been orphaned and needs both important bug fixes and important security fixes, and as such you need to be very careful about what you install on Void Linux. Some of these problems are natural in the beginning of a small project, however according to some of the Void Linux developers, they are quite content with status quo, and they prefer that it stays that way. According to them, the Void Linux distribution isn't intended to grow, it's a distribution only for the developers themselves - and this is quite alright of course, but they should atleast inform people about that on their website, something which they do not.

Void Linux - was created in 2008 by Juan Romero Pardines, a former maintainer of NetBSD, as an independent distribution to have a test-bed for xbps, a native system package manager, written from scratch with a 2-clause BSD license, and xbps-src a xbps package builder, also written from scratch with a 2-clause BSD license. Void Linux uses runit as its init system instead of systemd, and this is something you'll notice right away, it is very well designed, very simple and easy to use, and it makes Void Linux boot really fast. Other elements of Void Linux also resembles the well designed BSD systems - perhaps because of Juan Romero Pardines background in NetBSD.

runit is an init scheme for Unix-like operating systems that initializes, supervises, and ends processes. runit is a reimplementation of the daemontools process supervision toolkit that runs on the Linux, Mac OS X, BSD, and Solaris operating systems. Runit is an init daemon. It is the first process started during booting, and continues running until the system is shut down. It features parallelization of the start up of system services, which can speed up the boot time of the operating system.

Services are enabled by simply linking them into the /var/service service directory:

# ln -s /etc/sv/foo /var/service/

To disable them again you just remove the link:

# rm /var/service/foo

Services can be controlled with the sv command and the following commands are available and can be used like:

# sv [up|down|status] foo

Where you use "up" to start, "down" to stop, and "status" to view the condition of a service. You can also use commands like "once", "pause", "cont", "hup", "alarm", "interrupt", "quit", "kill" to send corresponding signals, and "start", "stop", "reload" and "restart" exists for LSB init compatibility.

You can install Void Linux manually, like you do with Arch Linux, but Void also has a small install script that helps you setup a minimal base system. A minimal setup is provided for extensive control and you need to install all the services and applications you need manually, even logging, which is really great. However, if you prefer, Void also provides installation images with pre-installed and fully functional desktop solutions such as Gnome, KDE, and Xfce4.

Void Linux is the first Linux distribution to incorporate LibreSSL from OpenBSD, rather than OpenSSL, as the system cryptography library by default. It is also unique among distributions in that separate installation media using both glibc and musl are available.

Void Linux is also using a rolling release nature, which means that a system running Void is kept up-to-date with binary updates carrying the newest release. However, source packages are maintained on GitHub and can be compiled using a supplied script for xbps-src. The build process is not tied to the current system and as such builds targeting foreign architectures can be run, too. If you know anything about the ports system from FreeBSD, NetBSD, or OpenBSD, you'll feel right at home in xbps-src.

xbps-src makes it really easy to build your own packages and if you find a package missing from the Void package repository, you can duplicate a "template" script from an existing package and have xbps-src build and compile the binary package for you. If you then want to, you can submit your package on GitHub as a pull request, and if it fullfils the Void requirements, it will be added to the official Void repository.

With the basic installer Void Linux is very clean and you have to set everything up yourself. This gives you a lot of power and knowledge about how your system is working. When you install a service, like say cups or dnsmasq, it isn't automatically activated, you have to manually enable and active all services.

Void Linux often gets compared to Arch Linux, perhaps because of the similarities in philosophy between these two systems, but they have very little in common in reality.

Void Linux is unique with its implementation of runit as the init system, xbps as its package manager, xbps-src as an original BSD ports system for Linux, GitHub as the xbps-src template file repository, following the UNIX philosophy to the letter, providing many different solutions rather than just one (like for logging and cron for example), and the project has a very helpful community both on their forum and on IRC.

Currently the Void Linux project isn't that big and the project is in need of both developers, maintainers, and people to help write quality documentation, but due to its very well designed system, the project is slowly growing its user base.

Facts about Void Linux:

I have setup Xorg with i3 (as I prefer a tilling window manager) and all the other applications I normally use, and everything has been running very well. Void is super fast at both booting and shutting down and the small memory print it leaves on the system makes it very suitable on even very low end and old hardware - unless of course you decide to install something like KDE or Gnome as your desktop system.

I have tested the Void installer script, but I prefer to install and setup Void manually, which is why I have made the tutorial Real full disk encryption using GRUB on Void Linux for BIOS.

Void Linux has great potential, but I think the developers needs to change attitude towards people who wants to help. They also need to come to terms with the declining reality of the project and inform people openly on their website about the problems concerning leadership and outdated packages.