Why Void Linux?
Copyright © 2015 by Steve Litt
See the Troubleshooters.Com Bookstore.
Here's why someone would use Void Linux
Void Linux is the best distro I've worked with. It's not a "just works out of the box" type distro, but it's not hard to get working, and once it works, it always works. Dependable. Rock solid. I've put it on two or three VMs and two laptops, and it worked perfectly. On one of those laptop computers, I installed Qemu and ran Ubuntu 15.04 in a Virtual Machine inside the laptop. Void is small and efficient: Functional on anemic computers, and supersnappy on modern computers. With Void Linux, your computer's power is spent on your applications, not on maintaining the operating environment.
Void is a chameleon. It can be a server with no desktop-inspired fluff. With a little setup, it can be a "just works" LXDE based laptop with full capabilities. It can boot to a virtual terminal (formerly "runlevel 3"), from which you can run the GUI with startx, or it can boot directly to the GUI.
Void is modular, and by that I mean the pre-2014 definition: Each part does one job, and has a small, simple and well published interface. Parts are connected only to parts they need to communicate with to achieve their jobs, and communicate only through the simple interfaces. Each part knows as little as possible of other parts' business. This means you can mix and match, you can substitute software parts, you can easily build functionality into the computer. When you install a package in order to gain a functionality, it doesn't pull in everything and the kitchen sink and a marching band. Void Linux has sane dependencies.
Void Linux inits with runit. Not sysvinit, not Upstart, not systemd: runit. Deploying a daemon in runit is simple: Make a directory, write a short run script, make a symbolic link, and bang, your daemon's deployed. Better yet, most Void packages include the directory and run script. All you do is make the symlink.
Making your own home-grown daemon from scratch is trivial: Write your daemon as a regular program that doesn't background itself, deploy it as any other daemon, and bang, you're done. To the person with some understanding of Linux filesystems and processes, runit is perfectly logical and very easy to use. If you're anything like me, after learning runit, you'll ask yourself "Hey, why didn't I think of that?
If I had to summarize all of this, I'd say that Void Linux has been built from the ground up for the person who wants to boss his computer around, without encountering a lot of stumbling blocks.
No technology covers all use cases. No distro covers all use cases. I doubt Slackware has any worries of losing users to Ubuntu, or vice versa. The use cases those two serve are so different that they can't substitute for each other.
Using that same logic, Void Linux isn't for everybody. For that matter, neither is Redhat, Debian, Arch, Gentoo or OpenSuSE. When someone tells you that his favorite distro is what everybody should be using, prepare for some convoluted logic and hold on to your wallet, because he's either a fanboy parroting the soundbytes of the titans of his world, or he's prioritizing monetary acquisition over creating something useful.
So let me get this out of the way: The situation that demands a Linux install that asks four or five questions and then lays down a "we do it all for you" GUI-centric Linux that works straight out of the box and never requires the user to write a script or edit a file is not right for Void Linux. That's a situation for Ubuntu, or Lubuntu, or Xubuntu.
Some businesses either outsource their system administration, or hire distro-specific experts to help their in-house admins with the tough stuff. This use case precludes Void Linux: Void-specific experts are few and far between, and nobody I know of has built a business out of farming out Void experts. The use case in this paragraph is best handled by Redhat.
Some businesses and individual prioritize having a distro used by millions, so that when they have a problem, it's likely that a simple web search can turn up instances of that same problem, and solutions that worked. And if need be, it's easy to find and talk to others using that distro. This paragraph's use case is best handled by Ubuntu, Debian, OpenSuSE, or Redhat.
Many individuals and businesses demand complete, useful and well-organized documentation. That's not Void. Documentation is Void Linux' weak suit, which is one reason I've written the Troubleshooters.Com Void Linux Subsite. When great documentation is the priority, look no farther than Arch. Gentoo also has excellent documentation.
Sometimes Void Linux is precluded by company policy. The boss says "thou shalt have no distros but Debian before me." Sometimes it's an edict about the init system: We will use only (systemd | sysvinit | OpenRC).
Void Linux covers use cases where a simple, small, reliable, modular, maleable Linux is needed. Void Linux works best when administered by a POSIX-aware admin or a user with some degree of programming or scripting chops, who doesn't object to rolling up his/her sleeves and reaching into the internals. Someone who wants absolute control over the system, without having to manipulate, push aside, or drill through too many layers of abstractions. Someone who either doesn't have the funding to outsource administration, or believes "if you want it done right, do it yourself." Here are some other situations in which Void Linux will likely be ideal:
No distro covers all use cases. There are situations indicating that Void Linux might not be a good choice:
There are edge cases where Void Linux becomes inconvenient. A complete solution dictates these inconveniences be worked around.
The Brother company distributes printer drivers and scanner drivers for my Brother MFC 8810 DW. Unfortunately, these drivers are available only as RPM or DEB files. No xbps files available. I'm not concerned. Someone on #xbps recommended I use rpmextract or rpm2cpio to get the files and place them in the proper directories. I haven't gotten that to work yet, but got the printer to work (albeit without all of its features) by installing foomatic and one of its Brother drivers. Later, I'll get a real Brother driver.
I have an ace in the hole. Void runs both Qemu and Docker very well, so for those few edge cases I won't be able to run in Void, I can run either a container or a virtual machine. One way or another, I'm assured of a solution.
Why is Void Linux such a well kept secret? Especially during the systemd world domination tour, why was Void almost never mentioned? People fled to the BSDs, switched to *too, created their own distro with Devuan, rebelliously alt-initted chauvinistically systemd distros, and screamed in indignation. Why?
Bad timing! Unfortunately, Void Linux actually used systemd until late July of 2014, well after the start of the Debian init wars, so few people thought of Void when looking to escape systemd. Now, word is slowly getting out that in July of 2014, Void Linux replaced systemd with Runit.
And then there's Mindshare. Publicity. Fad value. Void Linux was too busy building a spectacular distro to toot their own horn, so it's enjoyed by a secret minority.
Void Linux has very little mindshare for the same reason GNU/Linux had little mindshare prior to 1997: Its competitors are much larger, better funded, and capable of fielding lots of programmers and technical writers. Trade press writers eagerly seek opinions from its competitors. Like GNU/Linux before 1997, Void is a technologically superior product. Like GNU/Linux before 1997, Void is an underground movement. Like pre-97 GNU/Linux, Void is a little publicity away from greatness.
If you use Void Linux, say so proudly. Sure, lots of people equate lack of name recognition with technical inferiority. With lack of innovation. With inability to do the job. And they do so without ever using what they're criticizing. And when Void becomes a fad, as lots of technically superior technologies do, those very people will be its new fanboiz.
If the use cases in this document sound like your use cases, try Void Linux. Try it a few times as virtual machine guests, then try it on some metal.
Void Linux is small, simple, modular, and easily understood. By default it installs very little, is lightweight, and works very well on anemic computers, as well as well endowed computers. But Void is scantly and contradictorally documented throughout the Internet.
No problem. This document gives you the tools to get an MBR loaded, one partition, ext4 Void system fully functional. Other configurations aren't all that much more difficult.