Обновление Debian

Материал из SysWiki
Версия от 02:28, 28 января 2024; Editor (обсуждение | вклад) (Создание страницы на основе части содержимого статьи 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
deb-src http://deb.debian.org/debian/ buster main

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main

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)))'

Вероятно пакеты из списка, который покажет данная команда, вам не нужны, тогда их стоит удалить.

См. также