Решил обновить свой основной домашний сервер с 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:
Старый файл sources.list удалил.
Для информации. Если все же нужен старый файл, то необходимо его изменить:
Обновил список пакетов из нового репозитория:
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
Запустив фулл апгрейд второй раз, все прошло отлично.