Why VoidLinux is Better than Arch - A Former Arch User's Perspective

Published 2020-06-24 on Anjan's Homepage

I had been an avid ArchLinux user for five years. I ran Arch on all my computers, I enjoyed using it, and I learned a lot from it. One day, I happened to try VoidLinux on one of my extra thinkpads and found my new favorite distro 1. The Arch to VoidLinux pipeline is somewhat a joke and maybe I'm leaning into that joke with this blog post. Anyway, here are some reasons for using my favourite meme distro.

1 Packaging

People often say: distro doesnt matter. To an extent, they are correct. When you are sufficiently experienced with administrating a Linux workstation or server, the distro matters a lot less. However, one area in which a distro has the potential to differentiate itself is packaging. Your distro's packaging standards and package maintainers will determine system stability and the number of programs you can easily install. When it comes to packaging, Void is head and shoulders above Arch.

After a couple of years of using Arch, I ended up finding the AUR system completely untenable. Most of the packages I use everyday need to be installed from the AUR - freecad, gnu icecat (the only nonbotnet web browser), etc. I don't consider the AUR part of the Arch repositories because they are not checked by the distro maintainers and the AUR is by-in-large unsupported. The whole point of a packaging system is to have a trusted repository of programs the user can install.

Compare this unsupported AUR system to the void-packages repository where all packages are checked by someone on the Void team. If the package prohibits redistribution (ie. discord), it is still supported by VoidLinux. The user must run xbps-src to package discord on their local machine but the template (analogous to PKGBUILD in Arch) is still checked and maintained in the main Void git repository. Arch is very anemic when it comes to the number of packages available if one ignores the packages in the AUR.

Sometimes a major dependency (ie. libressl) will get an upgrade. This means that all packages that depend on libressl need a revision bump to compile against the newest version of libressl. When this happens, you must rely on the following things to ensure an AUR package or its dependencies do not break:

  1. Remember to run yay -Syua
  2. Check if the package maintainer is active (read AUR comments for breakage)

Recall Arch does not support partial upgrades so you must upgrade AUR packages constantly. In contrast, Void-packages is similar to the AUR in that it allows any user to maintain a package by submitting a pull request on github. Furthermore, any user can send a pull request to upgrade a package they are using 2. All pull requests are checked by a VoidLinux team member and if the binary is not too large, it is hosted on the official voidLinux repo servers and installable for all void users via the main package manager. If you submit a package and its makedependancy gets an upgrade, the person updating the makedependancy will revision bump your package and post the new working revision in the official Void repositories.

I am not timid about my love for free software. I try to use as much free software as possible but to live in this world, I have to use some proprietary software. On Arch the free and nonfree packages are in one repository. All this creates a distro which hides the problem of proprietary software on your system. On VoidLinux, there is a separate non-free repository similar to Debian. If you don't install the metapackages that enable nonfree repositories, you have no nonfree software on your computer other than some proprietary firmware. Furthermore, you can easily check how nonfree your system is and work to fix the problem areas. Seperating free and nonfree packages is important as it shows the distro recognizes the ideals of software freedom.

1.1 XBPS

Another thing that contributes to the uniqueness of a distro is the package manager. xbps-src is one of the best package managers I have ever used aside from alpine's apk-tools. XBPS can cross-compile for multiple Archs and libcs. This means I can use my powerful ryzen 7 to compile packages for my arm64 machine to test packaging. The cross compilation also encourages ecosystem diversity (ie. musl).

With xbps, partial upgrades are supported unlike ArchLinux. In a rolling release distro, partial upgrade support allows the user to partially rollback an upgrade. Furthermore, the ability to rollback certain packages adds stability to your setup.

The Void team is very helpful in irc if you want to try packaging for voidLinux. I was able to figure out xbps in an afternoon using the well written xbps manual. Additionally, the team is very receptive to package requests.

2 Systemd considered harmful

The ever growing scope of the systemd project is troubling. Large and ever growing software projects inevitably have large security vulnerabilities and reliability issues. Consider projects that have a hard requirement on systemd (ie. Gnome). This hard requirement should be troubling for anyone that wants a Linux ecosystem that is diverse.

Instead of systemd, VoidLinux uses runit as its official init. Runit starts up and shuts down my computers faster than systemd.

3 Easy install

The Void installer is an easy to use ncurses wizard.

Try it void!

Check out its awesome handbook!

Footnotes:

1

I prefer alpine on computers where I don't need glibc and gnu coreutils. Ie. ARM devices and servers. Alpine shares all the strengths of Void I wrote about in this blog post.

2

Often the pull request to update is as simple as this: kompare: update to 20.04.1.

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~anjan/public-inbox@lists.sr.ht [mailing list etiquette]

Articles from blogs I follow around the net

These articles/blogs do not represent my own opinions or views.

Linux development is distributed - profoundly so

The standard introduction to git starts with an explanation of what it means to use a “distributed” version control system. It’s pointed out that every developer has a complete local copy of the repository and can work independently and offline, often contra…

via Blogs on Drew DeVault's blog September 2, 2020

Eshell versus M-x shell

I’ve used and defended Eshell for years. Sadly, Eshell has some long standing issues that I grew tired of in the long run. So I’ve decided to switch to M-x shell and see how much of my Eshell workflow I could port. Language and the underlying shell pr…

via Pierre Neidhardt's homepage June 26, 2020

Thermoelectric Stoves: Ditch the Solar Panels?

Wood stoves equipped with thermoelectric generators can produce electricity that is more sustainable, more reliable, and less costly than power from solar PV panels.

via LOW←TECH MAGAZINE May 26, 2020

Generated by openring