Siddhant Goel


The switch from Arch to Debian

Oct 24, 2019 · #linux #productivity

About 3 weeks ago I switched my personal machine over to Debian Buster (also stable at the moment). For the past few years, I've almost exclusively been an Arch Linux user. A few weeks back though, I felt that I would like to enable full disk encryption, which required an OS re-install. Ideally I would've installed Arch again, but this time around I simply wasn't in the mood to go through the installation process.

All I wanted was a system that picks minimal, safe, and boring defaults, so that I can quickly move on to getting some actual work done.

Arch & Debian

Before I start, I want to put it out there that this post is not to demean Arch. Arch is an amazing distribution which I highly recommend to almost everyone. It's actually the one distro which put an end to my distro-hopping phase. And the installation is part of what makes it Arch. Once you're done setting it up, you know exactly what components your system is composed of, and how everything ties together and works together. And that makes you feel not just in complete control, but it's also kind of comforting, in the sense that in case things break, you're familiar enough with your system to know exactly where to look to fix things.

But there's also a downside. And that comes from the fact that my brain only has a limited number of cycles to spare per day. Instead of keeping the state of my machine in my mind, I would rather use those brain cycles to get some actual work done. Yes, polishing your tools is important to increase your efficiency. But I feel the ratio of polishing your tools to efficiency is similar to the ratio of earning more money to happiness. After a certain point, the returns start diminishing so the extra effort may not necessarily be worth it.

With this chain of thought, I decided to give Debian a try. And since "stability" was a very important requirement for me, I decided to go with stable instead of testing/unstable.

The differences between the three are quite interesting though. Stable is considered rock solid. Unstable is constantly changing, so any breakages are almost immediately fixed. But the time it takes for those fixes to end up in testing may vary, so if testing is broken, it can stay like that for a while. So even though it's slightly unintuitive, testing can be the most broken version of Debian (for Debian's definition of "broken").

Anyway, having decided to install stable, I clicked my way through the installer and had a plain GNOME setup up and running in about an hour.

First impressions

Prior to Debian, most of my experience with Linux has been with Arch, where finishing the installation to get to a working desktop was a big deal. This time around though, ending up on the desktop was pretty uneventful, which was a nice change!

Things seemed to just work. I'm on a Thinkpad which is generally well supported in Linux, so it was nice to see that things like bluetooth, keyboard hotkeys, and sleep/hibernate, were working out of the box. The only thing that didn't work out of the box was WiFi because it needed proprietary drivers, but fixing that was as simple as adding the non-free repository and installing iwlwifi.

For some reason, Debian has a reputation of being a "developer-only" distribution. Not sure what that even means, but so far I haven't had to use my "developer-only" skills.

Packages

Stable does have a reputation of having really old packages in its repositories. And in the beginning it did bother me a little bit. But after using Debian for 3 weeks, it doesn't seem like a huge deal-breaker.

The packages seem fairly recent to me (at least for now). And if you really want the bleeding edge, you have the option to backport selected packages to your system to have their newer versions. So far I haven't felt the need to do that, but it's good knowing that it's possible.

Updates

Similar to the packages situation, I've noticed that apt doesn't offer updates too often. Probably because stable isn't changing too much anyway (which is a feature, not a bug). And to be honest, I feel a bit relieved when I see that not a lot of packages need updating.

siddhant@thinkpad ~ % sudo apt list --upgradable
Listing... Done

siddhant@thinkpad ~ %

Previously, running software updates (especially kernel updates) was almost always something that required active participation. My usual process was to first check Arch Linux News if there were any announcements, and then to check reddit if some others were reporting breaking updates. Only if everything looked normal, would I go through with the update. It wasn't normally a big deal, and to be honest I've never had my Arch install break, but it wasn't a non-event either.

Now, I have the peace of mind to just update whenever I feel like. One, updates aren't that often anyway. And two, knowing how much importance stable puts on being stable, updates are much less of an event.


So far I'm satisfied with the switch. I feel that my system is now less "exciting", stays out of my way, and provides me with a solid base where I can focus on getting work done. In the age where we're constantly running after the latest and the greatest, at times we tend to ignore the value that stability provides (especially when the focus is on getting work done).