logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Praise-for-Alpine-Linux.md (4698B)


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