Решил обновить свой основной домашний сервер с docker на 13 версию, debian Trixie. В общем то, рядовой процесс, ничего особенно сложного нет, но есть несколько нюансов.

 Для начала, провел некоторые действия, чтобы подготовиться:

1. Вытащил список пакетов, установленных в системе:

dpkg --get-selections "*" > ~/dpkg.list

2. Полностью обновил свою систему:

apt update && apt upgrade && apt dist-upgrade && apt --purge autoremove

3. На всякий случай удалил docker compose и docker buildx:

dpkg --remove docker-compose-plugin docker-buildx-plugin

4. Обновил репозитории в файле /etc/apt/sources.list на новую версию релиза с bookworm на trixie. Для этого релиза есть рекомендация уходить от настроек в файле sources.list на размещение их в директории /etc/apt/sources.list.d/ в новом формате. Создал в этой директории файл debian.sources:

Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Старый файл sources.list удалил.

Для информации. Если все же нужен старый файл, то необходимо его изменить:

deb http://deb.debian.org/debian trixie main
deb http://deb.debian.org/debian trixie-updates main
deb http://security.debian.org/debian-security trixie-security main
deb http://ftp.debian.org/debian trixie-backports main 

Обновил список пакетов из нового репозитория:

apt update

Далее, приступил к обновлению

apt full-upgrade

И вот тут то меня ждал сюрприз. apt выдал ошибку:

The base-files package cannot be installed because
/bin is a symbolic link and not pointing at usr/bin exactly.
This is an unexpected situation. Cannot proceed with the upgrade.
For more information please read https://.......

Погуглил и почти сразу нашел решение - нужно было заменить символические ссылки на /bin, /lib, /lib64. У меня, например, /bin казывал на /usr/bin, а надо было на usr/bin, то есть относительный путь, а не абсолютный. Переделал ссылки:

cd /
ln -nsf usr/bin bin
ln -nsf usr/lib lib
ln -nsf usr/sbin sbin

Запустив фулл апгрейд второй раз, все прошло отлично.