|

[Review] Void Linux, a Linux BSD Hybrid

There are distros that follow the crowd and there are others that try to make their own path through the tall weed. Today, we’ll be looking at a small distro that looks to challenge how a distro should work. We’ll be looking at Void Linux.

What is Void Linux?

Void Linux is a “general purpose operating system, based on the monolithic Linux kernel. Its package system allows you to quickly install, update and remove software; software is provided in binary packages or can be built directly from sources with the help of the XBPS source packages collection.”

Void Linux Neofetch
Void Linux Neofetch

Like Solus, Void Linux is written from scratch and does not depend on any other operating system. It is a rolling release. Unlike the majority of Linux distros, Void does not use systemd. Instead, it uses runit. Another thing that separates Void from the rest of Linux distros is the fact that they use LibreSSL instead of OpenSSL. Void also offers support for the musl C library. In fact, when you download a .iso file, you can choose between glibc and musl.

The homegrown package manager that Void uses is named X Binary Package System (or xbps). According to the Void wiki, xbps has the following features:

  • Supports multiple local and remote repositories (HTTP/HTTPS/FTP).
  • RSA signed remote repositories
  • SHA256 hashes for package metadata, files, and binary packages
  • Supports package states (ala dpkg) to mitigate broken package * installs/updates
  • Ability to resume partial package install/updates
  • Ability to unpack only files that have been modified in * package updates
  • Ability to use virtual packages
  • Ability to check for incompatible shared libraries in reverse dependencies
  • Ability to replace packages
  • Ability to put packages on hold (to never update them)
  • Ability to preserve/update configuration files
  • Ability to force reinstallation of any installed package
  • Ability to downgrade any installed package
  • Ability to execute pre/post install/remove/update scriptlets
  • Ability to check package integrity: missing files, hashes, missing or unresolved (reverse)dependencies, dangling or modified symlinks, etc.

System Requirements

According to the Void Linux download page, the system requirements differ based on the architecture you choose. 64-bit images require “EM64T CPU, 96MB RAM, 350MB disk, Ethernet/WiFi for network installation”. 32-bit images require “Pentium 4 CPU (SSE2), 96MB RAM, 350MB disk, Ethernet / WiFi for network installation”. The Void Linux handbook recommends 700 MB for storage and also notes that “Flavor installations require more resources. How much more depends on the flavor.”

Void also supports ARM devices. You can download ready to boot images for Raspberry Pi and several other Raspberry Pi alternatives.

Void Linux Installation

NOTE: you can either install Void Linux download page via a live image or use a net installer. I used a live image.

I was able to successfully install Void Linux on my Dell Latitude D630. This laptop has an Intel Centrino Duo Core processor running at 2.00 GHz, NVIDIA Quadro NVS 135M graphics chip, and 4 GB of RAM.

Void Linux Mate
Void Linux Mate

After I dded the 800 MB Void Linux MATE image to my thumb drive and inserted it, I booted my computer. I was very quickly presented with a vanilla MATE desktop. To start installing Void, I opened up a terminal and typed sudo void-installer. After using the default password voidlinux, the installer started. The installer reminded me a little bit of the terminal Debian installer, but it was laid out more like FreeBSD. It was divided into keyboard, network, source, hostname, locale, timezone, root password, user account, bootloader, partition, and filesystems sections.

Most of the sections where self-explanatory. In the source section, you could choose whether to install the packages from the local image or grab them from the web. I chose local because I did not want to eat up bandwidth or take longer than I had to. The partition and filesystems sections are usually handled automatically by most installers, but not on Void. In this case, the first section allows you to use cfdisk to create partitions and the second allows to specify what filesystems will be used in those partitions. I followed the partition layout on this page.

If you install Void Linux from the local image, you definitely need to update your system. The Void wiki recommends running xbps-install -Suv until there are no more updates to install. It would probably be a good idea to reboot between batches of updates.

Experience with Void Linux

So far in my Linux journey, Void Linux has been by far the most difficult. It feels more like I’m using a BSD than a Linux distro. (I guess that should not be surprising since Void was created by a former NetBSD developer who wanted to experiment with his own package manager.) The steps in the command line installer are closer to that of FreeBSD than Debian.

Once Void was installed and updated, I went to work installing apps. Unfortunately, I ran into an issue with missing applications. Most of these applications come preinstalled on other distros. I had to install wget, unzip, git, nano, LibreOffice to name just a few.

Void does not come with a graphical package manager. There are three unofficial frontends for the xbps package manager and one is based on qt. I ran into issues getting one of the Bash-based tools to work. It hadn’t been updated in 4-5 years.

Octoxbps
Octoxbps

The xbps package manager is kinda interesting. It downloads the package and its signature to verify it. You can see the terminal print out from when I installed Mcomix. Xbps does not use the normal naming convention used in most package managers (ie apt install or pacman -R), instead, it uses xbps-install, xbps-query, xbps-remove. Luckily, the Void wiki had a page to show what xbps command relates to apt or dnf commands.

The main repo for Void is located in Germany, so I decided to switch to a more local server to ease the burden on that server and to download packages quicker. Switching to a local mirror took a couple of tries because the documentation was not very clear. Documentation for Void is located in two different places: the wiki and the handbook. For me, the wiki’s explanation was confusing and I ran into issues. So, I searched for an answer on DuckDuckGo. From there I stumbled upon the handbook’s instructions, which were much clearer. (The handbook is not linked on the Void Linux website and I had to stumble across it via search.)

One of the nice things about Void is the speed of the system once everything was installed. It had the quickest boot time I have ever encountered. Overall, the system was very responsive. I did not run into any system crashes.

Final Thoughts

Void Linux took more work to get to a useable state than any other distro I have tried. Even the BSDs I tried felt more polished than Void. I think the tagline “General purpose Linux” is misleading. It should be “Linux with hackers and tinkerers in mind”. Personally, I prefer using distros that are ready for me to use after installing. While it is an interesting combination of Linux and BSD ideas, I don’t think I’ll add Void to my short list of go-to distros.

If you like tinkering with your Linux system or like building it from scratch, give Void Linux a try.

Have you ever used Void Linux? What is your favorite Debian-based distro? Please let us know in the comments below.

If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.

Similar Posts

  • I found Void no more work than Debian to install and configure. It keeps R up to date – that is important for me. Runit is easy to learn. I was able to unpack .deb packages of printer drivers and install them manually.

  • New to linux and no problems whatsoever. It is very usable distro. More usable than debian i should say. It has newer kernel than arch, great support, friendly community and is -thankfully- systemD free. And that’s why you don’t like it. BTW the only downside is the installer but there are several ways to make an installation like the voidvault script or via project trident which is a void linux derivative. There is also ronin a preconfigured Void linux iso or Agarimos another preconfigured in a different way derivative. Also for people who want to try void: Do it!
    Install vpm which is a script that simplifies xbps. For example if i want to install a programme i type: “`sudo vpm i programme“`
    vpm help also shows all commands. Awesome!

  • how do you define a usable state?
    usable to who?

    probably you define something usable comparing it to what Microsoft and Apple put down the pipe for you. Maybe you should look there for solutions.

  • Wow, it seems like most people commenting here are the “I use Arch btw” crowd.

    Void linux might be great, but it is a niche distro. Caring about systemd, using laptops from ’95, loving windows 98 style UI, preferring terminal over UI are all niche things. Even for Linux community.

    • > Caring about systemd…preferring terminal over UI are all niche things

      I would say neither of these are niche things. The systemd situation may only be important to developers and power users, but the reason these types of distros exist and continue to gain popularity is because its difficult to get away from systemd.

      And the idea of using a terminal as niche just defines what type of user you are. No developer, sysadmin, poweruser, or techjunky is going to be scared of the terminal. Adding tons of UI wrappers for terminal applications that require no real effort to understand is kind of counter intuitive. Much of FLOSS also follows the KISS principle. Adding an extra wrapper rather than just reading the man pages seems excessive.

  • I am using voidlinux almost a year now and stop distrohoping thanks to void. Its excellent lightweight distro. I build awesome and openbox desktop from base system. For my mom i installed mate version from livecd and she love it also… She was used Windows 7, i left installation on second drive, but she never come back to windows…