From 574da5a51216130d3221473f1d8f0e7275e627d0 Mon Sep 17 00:00:00 2001 From: uvok cheetah Date: Sat, 21 Feb 2026 17:09:58 +0100 Subject: Add pyenv section --- _posts/2026-02-21-updating-my-servers-to-trixie.md | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/_posts/2026-02-21-updating-my-servers-to-trixie.md b/_posts/2026-02-21-updating-my-servers-to-trixie.md index e2853c2..0942db0 100644 --- a/_posts/2026-02-21-updating-my-servers-to-trixie.md +++ b/_posts/2026-02-21-updating-my-servers-to-trixie.md @@ -14,7 +14,7 @@ the "least problematic" servers first. (Gut feeling). Turns out, my intuition was relatively right. What confused me extremely is that the upgrade notes appear to have moved to -https://www.debian.org/releases/trixie/release-notes/upgrading.html. +[a readthedocs look like page](https://www.debian.org/releases/trixie/release-notes/upgrading.html). Previously, iirc, it was always a chapter in the Debian Handbook. So, the pain points of Debian updates, for me, always is the config file @@ -30,7 +30,7 @@ The actual **major** pain point was indeed the last server. I've been accumulating various questionable packages on this one, for some reason, I installed ffmpeg in the past, which means there were lot of X-related libraries pulled in. During the cleanup, I unwisely -must've fired off some purge command[1]… Which I acknowledged without +must've fired off some purge command[^1]… Which I acknowledged without looking properly. The result was that my entire /etc/letsencrypt directory was erased, as I used the distro-supplied certbot in the past. I just removed the package at some point and installed certbot via pip. @@ -40,6 +40,23 @@ nginx config manually, adding temporary fake certs/keys, so that nginx would start at all, so that certbot could work, and I could re-add the certificates again. +The second biggest pain point is Python virtual environments. Since +Debian upgrades always(?) update the Python minor version, all existing +venv's stop working, since a) they are created with a pointer to, +e.g. `/usr/bin/python3.11`, and b) packages/modules go into a +version-specific site-packages subdirectory. So, the procedure always +is go through all of them, recreate the venv, reinstall all packages, +hope it still works. In my case, even the Python script that +triggers buildbot builds didn't work anymore, because +`from future.utils import itertools`[^2] didn't work anymore, +and needed to be replaced by `dict.items()`. And my looking glass +didn't work no more because apparently Python stopped shipping +the `cgi` module. The current "replacement" seems to be +[legacy-cgi](https://pypi.org/project/legacy-cgi/). +I have no "proper" solution for this yet. + Lesson learned: Read the fucking output before you hit enter. -[1]: Via ansible, nonetheless. +[^1]: Via ansible, nonetheless. + +[^2]: [contrib script](https://github.com/buildbot/buildbot/blob/master/master/contrib/git_buildbot.py#L26) -- cgit v1.2.3