Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:debian:bullseye:in-place-upgrade-update-from-debian-10-buster-to-debian-11-bullseye

Это старая версия документа!


Oбновление Debian GNU/Linux 10 "Buster" до Debian 11 "Bullseye" (In-Place Upgrade)

Перед началом процедуры обновления методом In-Place Upgrade с Debian GNU/Linux 10 (Buster) до Debian 11 (Bullseye) крайне желательно создать резервную копию обновляемой системы для возможности возврата системы в исходное состояние на тот случай, если после обновления возникнут проблемы.

На этапе планирования обновления необходимо внимательно прочитать докумнет Что нужно знать о bullseye. Особенное внимание следует уделить таблице с проблемными пакетами в разделе Known severe bugs. Сама процедура обновления и всё известные её особенности описаны в документе Обновление с Debian 10 (buster).


Обновление Debian 10

Проверим текущую версию Debian:

# cat /etc/debian_version

10.10
# uname -a

Linux WS01 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
# lsb_release -a

No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 10 (buster) Release: 10 Codename: buster

Убедимся в том, что в конфигурации пакетного менеджера apt /etc/apt/sources.list подключены стандартные репозитории Debian Buster: Как подключить стандартные репозитории Debian 10 Buster

Выполним обновление всех доступных к обновлению пакетов из репозиториев Buster:

# apt-get update
# apt-get upgrade

После обновления пакетов перезагрузим систему и проведём ещё ряд предварительных проверок.


Проверка пакетной базы

Предварительно следует зафиксировать все пакеты, установленные не из официальных репозиториев Debian, так как с любым из этих пакетов могут возникнуть какие-либо проблемы при обновлении системы (возможно данные пакеты потребуют переустановки/обновления после обновления ОС). Получить список таких пакетов можно, например, с помощью apt-forktracer.

# apt install apt-forktracer
# apt-forktracer | sort

hpmyroom (12.4.0.0294) libsstp-api-0 (1.0.12-0ubuntu3) network-manager-sstp (1.2.6-0ubuntu2) network-manager-sstp-gnome (1.2.6-0ubuntu2) sstp-client (1.0.12-0ubuntu3)


Рекомендуется найти и удалить все устаревшие конфигурационные файлы, оставшиеся в системе от предыдущих обновлений. Это поможет в дальнейшем избежать путаницы при анализе проблемных приложений. Найти такие устаревшие файлы можно например командой:

# find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error'

Перед обновлением рекомендуется отключить все неофициальные репозитории, чтобы избежать конфликтов в ходе обновления. Для этого получим список всех используемых в системе репозиториев командами типа:

# cat /etc/apt/sources.list
# cat /etc/apt/sources.list.d/*


Помимо этого следует проанализировать фиксированные (Pinning) пакеты APT. Перед обновлением желательно отключить все фиксации пакетов. Если один из участвующих в обновлении пакетов зафиксирован, обновление завершится неудачно.

# cat /etc/apt/preferences
# cat /etc/apt/preferences.d/*

Независимо от способа обновления, рекомендуется сначала проверить состояние всех пакетов и убедиться, что всем пакетам разрешено обновляться. Следующая команда покажет пакеты установленные частично (Half-Installed), настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях:

# dpkg --audit
# dpkg --get-selections | grep 'hold$'

Для того, чтобы отменить фиксацию какого либо пакета, находящегося в статусе «hold», можно использовать команду типа:

# echo package_name install | dpkg --set-selections

Подключение репозиториев Debian 11

В файле /etc/apt/sources.list отключим стандартные репозитории Debian 10 (закомментируем строки) и подключим репозитории Debian 11: Как подключить стандартные репозитории Debian 11 Bullseye

Обновим кеш менеджера пакетов:

# apt-get update

Проверка доступного пространства для обновления

Нехватка места при обновлении может привести к последующим дополнительным проблемам, которые может оказаться нелегко исправить. Поэтому перед запуском процесса обновления системы следует убедиться в том, что у нас достаточно места на диске. В ходе обновления все нужные для установки пакеты загружаются из репозиториев Debian в каталог /var/cache/apt/archives, поэтому мы, как минимум, должны проверить место на разделе, который содержит /var/.

Чтобы предварительно оценить то, сколько места потребуется для загружаемых пакетов, можно использовать команду «холостого» запуска обновления (эта команда только произведёт расчёт нужного места на диске, но не станет выполнять саму процедуру обновления):

# apt -o APT::Get::Trivial-Only=true full-upgrade

Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Расчёт обновлений… Готово Следующие пакеты устанавливались автоматически и больше не требуются: argyll argyll-ref ... xml-core zstd Следующие пакеты будут обновлены: accountsservice acl ... zip zlib1g zlib1g-dev Обновлено 2155 пакетов, установлено 399 новых пакетов, для удаления отмечено 79 пакетов, и 0 пакетов не обновлено. Необходимо скачать 2 341 MB архивов. После данной операции объём занятого дискового пространства возрастёт на 1 990 MB. E: Запрошено выполнение только тривиальных операций, но это не тривиальная операция.

Минимальное обновление системы

Чтобы легче было разбираться с возможными конфликтами при обновлении системы, обновление лучше выполнять в 2 этапа - сначала минимальное обновление, а затем полное обновление.

Минимальное обновление приведёт к обновлению только тех пакетов, которые можно обновить без необходимости удаления или установки других пакетов. Минимальное обновление системы также может оказаться полезным, если на диске мало свободного места, и по этой причине запускать сразу полное обновление нежелательно.

Запускаем минимальное обновление:

# apt upgrade --without-new-pkgs

На запрос о необходимости перезапуска служб в процессе установки новых версий пакетов ответим утвердительно.


Обновление системы

Если обновление выполняется в удалённом режиме (SSH-сессия), то перед выполнением команды полного обновления, возможно, имеет смысл открыть дополнительную SSH-сессию к системе. Это позволит нам, не прерывая процесс обновления, сохранить свои конфигурационные файлы от ранее установленных пакетов, при обновлении которых возникли конфликты с конфигурационными файлами, поставляемыми в составе новых версий пакетов

После выполнения предыдущих шагов запускаем команду полного обновления системы:

# apt full-upgrade

Эта команда произведёт полное обновление системы, установив последние доступные версии всех пакетов и разрешив всех изменившиеся между выпусками зависимости. При необходимости будут установлены новые пакеты (обычно, это новые версии библиотек или переименованные пакеты) и удалены все вызывающие конфликты устаревшие пакеты.

Для пакетов, у которых ранее были изменены стандартные конфигурационные файлы, будет предложено выбрать вариант их обновления. Можно использовать опцию установки новых конфигурационных файлов (опция Y), а можно оставить свои ранее настроенные конфигурационные файлы (опция N), если мы понимаем, что принципиальных отличий в директивах конфигурации нет.

По окончании процесса обновления перезагружаем систему

# reboot

После первой успешной загрузки системы проверяем версию загруженного ядра Linux:

# uname -a

Linux WS01 5.10.0-8-amd64 #1 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux

Проверяем версию ОС:

# lsb_release -a

No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
$ cat /etc/debian_version 

11.0

Удаление устаревших пакетов

После успешного окончания установки всей пакетой базы новой версии удаляем устаревшие файлы неиспользуемых пакетов:

# apt-get autoremove

Чтобы получить список удалённых пакетов, чьи файлы настройки всё ещё остаются в системе, выполним:

# dpkg -l | awk '/^rc/ { print $2 }'

Чтобы вычистить все соответствующие остатки пакетов можем выполнить команду типа:

# apt purge $(dpkg -l | awk '/^rc/ { print $2 }')

Проверено на следующих конфигурациях:

Версия исходной ОС Версия целевой ОС
Debian GNU/Linux Buster 10.9 Debian GNU/Linux Bullseye 11.0

Автор первичной редакции:
Алексей Максимов
Время публикации: 21.09.2021 09:32

Обсуждение

Ваш комментарий:
 
unix-linux/debian/bullseye/in-place-upgrade-update-from-debian-10-buster-to-debian-11-bullseye.1632205995.txt.gz · Последнее изменение: 21.09.2021 09:33 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki