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:
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.