Обновление Debian
Обновление Debian может проводиться как вручную, так и в автоматическом режиме, последнее справедливо для установки обновлений в рамках одной версии, переход на следующую версию требует ряда предварительных операций (проверки состояния пакетов и настройки на репозиторий нового дистрибутива).
Обновление в рамках одной версии Debian
Ручная установка обновлений
Для установки обновлений в Debian необходимо сначала обновить список пакетов командой apt update и далее выполнить команду apt upgrade или apt full-upgrade. Разница между последними двумя командами в том, что первая из них не удаляет пакеты, даже если это действие необходимо для обновления других пакетов, а вторая осуществляет обновление даже если для этого требуется удалить некоторые пакеты. Как правило, разницы между этими командами нет, и лучше использовать вторую из них, обращая при этом внимание на то, не будет ли удалён какой-либо пакет из тех, которые вам всё же нужны настолько, что вы готовы подождать с обновлением системы. Таким образом, команда для установки обновлений будет выглядеть так:
apt update; apt full-upgrade
При обновлении программа также запросит подтверждение, для чего нужно нажать Y, если всё в порядке (и N, если предложенный вариант вас не устраивает).
При этом обновления устанавливаются только в рамках одной версии, без дополнительных действий вы не перейдёте на новую версию Debian.
Автоматическая установка обновлений
Для автоматической установки обновлений служит приложение UnattendedUpgrades, которое устанавливается следующей командой:
apt install unattended-upgrades
После установки данное приложение нужно настроить. Во-первых, нужно разрешить автоматическую установку обновлений, это делается переконфигурированием пакета при помощи dpkg-reconfigure:
dpkg-reconfigure -plow unattended-upgrades
Будет показан запрос на автоматическую установку обновлений, нужно выбрать вариант, разрешающий её. Далее имеет смысл отредактировать конфигурационный файл /etc/apt/apt.conf.d/50unattended-upgrades, в котором можно разрешить перезагрузку системы в случае необходимости (например, это нужно при обновлении ядра) и выбрать время, когда это должно происходить, для этого можно установить нужным образом в этом конфигурационном файле опции Unattended-Upgrade::Automatic-Reboot, Unattended-Upgrade::Automatic-Reboot-WithUsers и Unattended-Upgrade::Automatic-Reboot-Time (по умолчанию они закомментированы), их назначение понятно из названия:
Unattended-Upgrade::Automatic-Reboot, если установлен в true, то разрешает автоматическую перезагрузку, если она потребовалась после установки обновлений, в противном случае надо поставить false;Unattended-Upgrade::Automatic-Reboot-WithUsers, если установлен в true, то разрешает автоматическую перезагрузку даже если в системе работают пользователи;Unattended-Upgrade::Automatic-Reboot-Timeопределяет время перезагрузки, например, "02:00".
Более подробно об автоматическом обновлении при помощи UnattendedUpgrades можно прочитать на сайте проекта Debian, на странице https://wiki.debian.org/UnattendedUpgrades.
Переход на следующую версию Debian
Подготовка к обновлению
Информация по обновлению Debian на сайте проекта есть, в частности, по адресам https://wiki.debian.org/DebianUpgrade и https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html. Процедура может несколько отличаться от версии к версии, в частности, могут меняться списки репозиториев и их разделов (например, в Debian 12 в архиве пакетов появился новый компонент, non-free-firmware, для того, чтобы отделить несвободное программное обеспечение от несвободных прошивок для оборудования. Но обычные принципы обновления версии Debian следующие.
Прежде всего необходимо создать резервную копию, чтобы, в случае ошибки при обновлении системы данные с неё не оказались потеряны или недоступны. Далее нужно обновить последние обновления для установленной версии:
apt update; apt full-upgrade
Далее необходимо убедиться, что нет препятствий для обновления системы.
Проверьте, что все установленные пакеты установлены из репозитория Debian (пакеты, установленные из других источников, как минимум могут перестать работать после обновления, или даже помешать обновлению). Проверить пакеты можно следующей командой:
apt list '?narrow(?installed, ?not(?origin(Debian)))'
Данная команда покажет список установленных пакетов, которых нет в репозитории (возможно все пакеты из дистрибутива, и программа не выведет ни одного названия). Будьте осторожны с этим списком, туда могут также попасть пакеты, которые ранее были в репозитории, но теперь в нём отсутствуют, например, старые пакеты с ядром системы. В обычной ситуации пакеты, выведенные командой выше, надо удалить перед обновлением. Также эта команда пригодится после обновления, поскольку после него в системе могут оставаться пакеты из старого дистрибутива, которые стоит удалить.
Далее нужно убедиться, что ни один из пакетов не имеет статус hold (что блокирует автоматическую установку, удаление или обновление пакета). Просмотреть список пакетов со статусом hold можно командой:
apt-mark showhold
Если какой-либо пакет имеет данный статус, то снять его можно командой вида:
apt-mark unhold имя_пакета
Далее вам нужно изменить файл /etc/apt/sources.list — убрать оттуда (или закомментировать) репозитории старого дистрибутива и добавить репозитории нового. Обновлять Debian следует от версии к версии, не пропуская промежуточные, то есть, например, если вы обновляете версию 10, то лучше обновить систему до версии 11 и, далее, до версии 12. Также следует проверить каталог /etc/apt/sources.list.d/ на отсутствие дополнительных источников пакетов. Список репозиториев для дистрибутивов Debian разных версий может отличаться не только именем дистрибутива. Примеры содержимого файлов /etc/apt/sources.list для ряда версий Debian даны ниже.
Содержимое /etc/apt/sources.list для разных версий Debian
Debian 10 (buster)
deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free deb http://security.debian.org/debian-security buster/updates main contrib non-free deb-src http://security.debian.org/debian-security buster/updates main contrib non-free deb http://deb.debian.org/debian/ buster-updates main contrib non-free deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free
Debian 11 (bullseye)
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 bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free deb http://deb.debian.org/debian bullseye-backports main contrib non-free deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free deb http://security.debian.org/debian-security/ bullseye-security main contrib non-free deb-src http://security.debian.org/debian-security/ bullseye-security main contrib non-free
Debian 12 (bookworm)
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 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 deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware deb http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware deb-src http://security.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware
Обновление
Обновление лучше вести из текстовой консоли (имеется в виду настоящая текстовая консоль, куда, например, можно попасть при помощи комбинации клавиш перейдя туда комбинацией клавиш Ctrl-Alt-F2), а не эмулятор терминала, запускаемый из графического интерфейса), поскольку в процессе обновления графический интерфейс может зависнуть. Также обычно обновление проходит нормально при подключении через SSH, но, в ответственных случаях, убедитесь, что у вас есть план Б на случай, если обновление через SSH пойдёт не по плану. Для обновления нужно ввести команду:
apt update; apt full-upgrade
И, как обычно, подтвердить операцию по запросу приложенрия, нажав Y. После того, как пакеты будут обновлены, перезагрузите систему.
После перезагрузки проверьте, не остались ли от старого дистрибутива пакеты, которых уже нет в новом дистрибутиве, командой, которую вы уже использовали ранее:
apt list '?narrow(?installed, ?not(?origin(Debian)))'
Вероятно пакеты из списка, который покажет данная команда, вам не нужны, тогда их стоит удалить.