Перед началом in-place обновления Debian 11 до новой версии Debian 12 (Bookworm) рекомендуем создать резервную копию операционной системы.
Проверьте вашу текущую версию Linux:# lsb_release -a
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
Проверьте, что в списке репозиториев apt подключены стандартные репозитории Debian Bullseye (/etc/apt/sources.list):
deb http://deb.debian.org/debian bullseye main contrib non-free deb-src http://deb.debian.org/debian bullseye main contrib non-free deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free deb http://deb.debian.org/debian bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
Если в составе репозиториев есть bullseye-backports или proposed-updates, отключите их.
Прежде, чем обновлять версию Debian, обновите все установленные пакеты:
# apt apt update
# apt apt upgrade -y
# apt apt autoremove -y
Найдите все пакеты, которые установлены не из официальных репозиториев Debian:# apt list '?narrow(?installed, ?not(?origin(Debian)))'
# apt install apt-forktracer
# apt-forktracer | sort
Найдите и удалите устаревшие конфигурационный файлы от предыдущих обновлений:
# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'
Проверьте список фиксированных пакетов apt. Перед обновлением рекомендуется отключить фиксацию пакетов:
# cat /etc/apt/preferences
# cat /etc/apt/preferences.d/*
Проверьте, что всем пакетам разрешено обновляться:
# dpkg --audit
# dpkg --get-selections | grep 'hold$'
# apt-mark showhold
# apt-mark unhold package_name
# echo package_name install | dpkg --set-selections
Установите пакет для проверки цифровых подписей gpgv:
# dpkg -l gpgv
# apt install gpgv
Замените репозиторий Bullseye на Bookworm:
# vim /etc/apt/sources.list
# From https://wiki.debian.org/SourcesList deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
Обновите кэш пакетов для нового релиза:
# apt update
Проверьте, что на диске достаточно место для загрузки пакетов. Оценить размер обновлений можно так:
# apt -o APT::Get::Trivial-Only=true full-upgrade
Новые пакеты загружаются в /var/cache/apt/archives, поэтому на разделе /var должно быть достаточно свободного места.
Сначала выполните минимальное обновление:
# apt upgrade --without-new-pkgs
Затем запустите полное обновление:
# apt full-upgrade
Перезагрузите сервер:
# systemctl reboot
Удалите ненужные файлы:
# apt-get autoremove
Найдите удаленные пакеты, чьи файлы еще остались на диске:
# apt list '~c'
# dpkg -l | awk '/^rc/ { print $2 }'
Для их удаления, выполните:
# apt purge '~c'
# apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
Проверьте версию системы и убедитесь, что она изменилась на Debian 12.0 Bookworm.
$ cat /etc/debian_version
12.0