# Choosing Void Linux

2022-10-27

What follows is like one of those food articles you find on the internet when you're trying just to find a simple apple pie recipe but instead you find a 20 minute article about someone's grandmother's special childhood apple pie and lots of unnecessary detail. Feel free to skip down to the parts that seem relevant to you, if any :)

### Linux Background

My family bought a computer when I was in middle school and I used Mac computers for almost 2 decades. My intro to Linux came when I learned about the One Laptop Per Child computer project. This was the era of TED talks and such, and I got excited, and purchased one during their 'give one get one' campaign. These came out a few years after I graduated from college. Before actually trying one I was excited by the mission, and by the hardware itself. The OLPC XO-1 computers run SugarOS. In some ways it was a fun start to experimenting with tinkering on a computer. For example, I loved playing with Squeak (like Scratch), a smalltalk environment, I believe. I think this may have been when I first tried out the command line and did a short Python tutorial at the Machine Project DIY space in LA. But despite the computer's charm, the rubber OLPC keyboard broke quickly. Sugar didn't work super well for me. I couldn't get much use out of the computer with the software that was on it. It felt limited for making music or art.  I tried out other Window Managers (Fluxbox) and even flashed Ubuntu on it. The computer's clock battery died. With my limited knowledge I lost interest and passed the computer on to someone else. 

After this, I continued to mostly be a Mac user. But after I went back to grad school I saw various websites about Linux that piqued my interest again. Mac was no longer an underdog but a big corporate tool. I was interested in a free and more DIY system. I found some old computers in the trash at school, pulled them out and installed the Arch derivative Antergos OS. I ran it for about a year as a second computer to my Mac. I had issues with borking stuff when running updates occasionally. And the nail in the coffin was when they stopped supporting 32bit systems since that's what my system was. Over time I started using the command line on my Mac, and finding myself in the terminal a lot of the time. One of my professors gave me a copy of Neal Stephenson's "In the Beginning Was the Command Line" and I enjoyed it a ton. Around this time I realized I was spending most of my time either in a web browser or in the command line but I felt limited with the brew package manager on Mac. I was also getting more and more frustrated with the Mac ecosystem as a whole, so when I moved and got a job teaching I ditched the Mac entirely and switched fulltime to Linux. At school I got a Dell and first dual-booted Windows and Ubuntu on it but then switched to Ubuntu with Regolith (an Ubuntu with i3 desktop spin that I've written about previously).

I ran Debian on my Raspberry Pi's, but I never tried Debian unstable or testing repos previously. Earlier this year was announced Ubuntu Rolling Rhino, which is kind of a hack on top of Ubuntu to get these unstable rolling builds. But I've seen no longterm reports, so despite my interest, it seemed like I'd rather choose something that had more of a track record and community online if I get stuck. 

As I spent more time working on Linux I began to understand better how distros differ. I found myself gravitating to certain preferences which included a large package repository. I also had certain interests in various kinds of computing minimalism, and over time became interested in trying out a distro that didn't use SystemD for its init system. I couldn't wrap my head around how Systemd worked, and I was interested in trying an init system that seemed more in keeping with the small interoperating Linux program philosophy. 

I considered Devuan, the Systemd-less Debian distro, but while Debian was very functional for me, it lacked a certain fun factor for me, and I didn't know how well the testing repos would work for me. Alpine Linux I run virtualized on my iPad and iPhone, without a GUI. It's certainly interesting, using MUSL and Busybox, and OpenRC. But the repos are small, and the emphasis of the distro on stability and security feels more suited to servers than my own interest in desktop use.

I skipped Arch-derived Systemd-less distros like Artix just because I've already had an Arch experience. While I loved that any and all software was available in the aur community repos, things didn't always work for me and took numerous tinkering around when I used the Arch-derived distro previously. I'm sure with several more years of Linux experience now under my belt I could likely get things going a bit better, but I didn't necessarily feel a draw to 'the Arch way,' and the message boards and community around the distro don't particularly pull me in.

I also read reviews of Guix and Nix. These are rolling release and built around a package manager that makes it easier to reproduce your build systems and roll back upgrades if something breaks. But the reviews I read of both of these made it seem like they were fiddly and could use more refinement. I also read you can install nix as a secondary package manager on a Linux system, as a (better) alternative to snap or flatpack, so I could always install this on top of another distro if I so chose.

### Getting to Void

So that left Void, a distro I've long been interested in but was wary it wouldn't work for me. In fact, I'd tried installing it a year or so previous and had some success on my Raspberry Pi but I just tried running it off a prebuilt Rasberry Pi iso, which is no longer offered. Other smart people I know online have also have struggled with it, and even reading reviews on DistroWatch and listening to various Linux podcasts I've heard others run into issues. But many (though not all) folks who struggled at first and then eventually got it running said their experience after the install was great. So I thought I'd see if I could get it running. (Short answer: yes)

Here's what interested me in Void Linux:

* rolling-release packages but fairly stable nonetheless
* not having to build software from source every time (this ruled out Gentoo and Kiss Linux for example)
* a non-Systemd init system
* 'minimal' defaults with ability to customize

Void stuck out to me due to some of its unique choices (custom package manager), its smaller but seemingly fairly active and what I hope is a (mostly) polite community, and the choice to use the simple runit init system. I was interested in trying out xbps. I believe this unique package manager came first, and then the rest of the parts of Void were built around it. I lurked on the subreddit for Void (as well as Kiss Linux when I was comparing) for a few months, reading and watching reviews, and I read through install tutorials and documentation.

The official Void downloads include base installs, and versions with various desktop environments prepackaged. But they don't have an i3 version, my preferred window manager, so I used a premade iso that I downloaded from voidbuilds.xyz with i3 instead of just the base. In addition to basic i3 packages it comes with a variety of other basic packages including nano, wget, git, qutebrowser, gnome-keyring, adwaita icons, alsa/pulseaudio, xterm, flatpak, pipewire, midnight commander, i3blocks, basic fonts, xrandr and some grub settings, among a few other things. 

=> https://voidbuilds.xyz/package_lists/i3-x64.packages.txt Voidbuilds i3 package list

The main idea is that you do pretty much everything exactly the same as a regular install, but this will have i3 pre-installed (and a number of other programs) so you won't need to install it, and you'll just update them with the regular updating process after install.

In the next post I'll go step by step (mostly) through the install process.

=> ./installing-void.gmi Next: Notes on Installing Void Linux
=> ./index.gmi back to index

---

To leave a comment send an email to lettuce at the current domain. You should put comment in the subject line, the name of the post and specify what name you'd like listed for your comment.
