logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git
commit: aa0e8239e991f25a2732f1fe7e65b3ab2b16e6b8
parent c7668e4419b82f16202cba9de76e875dd04b707c
Author: Drew DeVault <sir@cmpwn.com>
Date:   Wed, 12 Oct 2022 11:15:39 +0200

In praise of Alpine Linux for WWW

Diffstat:

Mcontent/blog/Praise-for-Alpine-Linux.md90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 88 insertions(+), 2 deletions(-)

diff --git a/content/blog/Praise-for-Alpine-Linux.md b/content/blog/Praise-for-Alpine-Linux.md @@ -1,5 +1,91 @@ --- -title: Praise for Alpine Linux +title: In praise of Alpine Linux date: 2021-05-06 -outputs: [gemtext] --- + +*Note: this blog post was originally only available via Gemini, but has been +re-formatted for the web.* + +The traits I prize most in an operating system are the following: + +* Simplicity +* Stability +* Reliability +* Robustness + +As a bonus, I'd also like to have: + +* Documentation +* Professionalism +* Performance +* Access to up-to-date software + +Alpine meets all of the essential criteria and most of the optional criteria +(documentation is the weakest link), and far better than any other Linux +distribution. + +In terms of simplicity, Alpine Linux is unpeered. Alpine is the only Linux +distribution that fits in my head. The pieces from which it is built from are +simple, easily understood, and few in number, and I can usually predict how it +will behave in production. The software choices, such as musl libc, are highly +appreciated in this respect as well, lending a greater degree of simplicity to +the system as a whole. + +Alpine also meets expectations in terms of stability, though it is not alone in +this respect. Active development is done in an "edge" branch, which is what I +run on my main workstation and laptops. Every six months, a stable release is +cut from this branch and supported for two years, so four releases are supported +at any given moment. This strikes an excellent balance: two years is long enough +that the system is stable and predictable for a long time, but short enough to +discourage you from letting the system atrophy. An outdated system is not a +robust system. + +In terms of reliability, I can be confident that an Alpine system will work +properly for an extended period of time, without frequent hands-on maintenance +or problem solving. Upgrading between releases almost always goes off without a +hitch (and usually the hitch was documented in the release notes, if you cared +to read them), and I've never had an issue with patch releases. Edge is less +reliable, but only marginally: it's much more stable than, say, Arch Linux. + +The last of my prized traits is robustness, and Alpine meets this as well. The +package manager, apk, is seriously robust. It expresses your constraints, and +the constraints of your desired software, and solves for a system state which is +always correct and consistent. Alpine's behavior under pathological conditions +is generally predictable and easily understood. OpenRC is not as good, but +thankfully it's slated to be replaced in the foreseeable future. + +In these respects, Alpine is unmatched, and I would never dream of using any +other Linux distribution in production. + +Documentation is one of Alpine's weak points. This is generally offset by +Alpine's simplicity — it can usually be understood reasonably quickly and easily +even in the absence of documentation — but it remains an issue. That being said, +Alpine has shown consistent progress in this respect in the past few releases, +shipping more manual pages, improving the wiki, and standardizing processes for +matters like release notes. + +I also mostly appreciate Alpine's professionalism. It is a serious project and +almost everyone works with the level of professionalism I would expect from a +production operating system. However, Alpine lacks strong leadership, some +trolling and uncooperative participants go unchecked, and political infighting +has occurred on a few occasions. This is usually not an impedance to getting +work done, but it is frustrating nevertheless. I always aim to work closely with +upstream on any of the projects that I use, and a professional upstream team is +a luxury that I very much appreciate when I can find it. + +Alpine excels in my last two criteria: performance and access to up-to-date +software. apk is simply the fastest package manager available. It leaves apt and +dnf in the dust, and is significantly faster than pacman. Edge updates pretty +fast, and as a package maintainer it's usually quite easy to get new versions of +upstream software in place quickly even for someone else's package. I can expect +upstream releases to be available on edge within a few days, if not a few hours. +Access to new software in stable releases is reasonably fast, too, with less +than a six month wait for systems which are tracking the latest stable Alpine +release. + +In summary, I use Alpine Linux for all of my use-cases: dedicated servers and +virtual machines in production, on my desktop workstation, on all of my laptops, +and on my PinePhone (via postmarketOS). It is the best Linux distribution I have +used to date. I maintain just under a hundred Alpine packages upstream, three +third-party package repositories, and several dozens of Alpine systems in +production. I highly recommend it.