Одной из самых известных особенностей Debian является возможность обновления установленной системы с одной стабильной версии на следующую: dist-upgrade— известная фраза — во многом способствовала репутации проекта. При соблюдении некоторых мер предосторожности обновление компьютера может занять от нескольких минут до нескольких десятков минут, в зависимости от скорости загрузки из репозиториев пакетов.
6.7.1. Рекомендованный порядок действий
Как только Debian перестанет работать некоторое время над текущей стабильной версией, ты получишь предупреждение об этом и о необходимости выполнить обновление вашего дистибутива на следующую стабильную версию.
In this section, we will focus on upgrading a Bullseye system to Bookworm. This is a major operation on a system; as such, it is never 100% risk-free, and should not be attempted before all important data has been backed up.
Ещё одна хорошая привычка, которая упрощает (и сокращает время) обновления — это наводить порядок в установленных пакетах и оставлять только те, которые действительно необходимы. Полезные инструменты для этого включают в себя
aptitude
,
deborphan
,
debfoster
, и
apt-show-versions
(см.
Раздел 6.2.7, «Трекинг автоматически устанавливаемых пакетов»). Например, вы можете использовать следующую команду, а затем использовать интерактивный режим
aptitude
для двойной проверки и точной настройки запланированных удалений:
#
deborphan | xargs aptitude --schedule-only remove
Now for the upgrading itself. First, you need to change the
/etc/apt/sources.list
file to tell APT to get its packages from
Bookworm instead of
Bullseye. If the file only contains references to
Stable rather than explicit codenames, the change isn't even required, since
Stable always refers to the latest released version of Debian. In both cases, the database of available packages must be refreshed with the
apt update
command or the refresh button in
synaptic
(see
Раздел 6.2.1, «Инициализация»).
Как только эти новые исходные пакеты будут зарегистрированы, вам вначале надо сделать небольшое обновление командой
apt upgrade
и др. как описано
Раздел 6.2.3, «Обновление системы». Выполняя обновление в два этапа, мы облегчаем работу инструментов управления пакетами и часто обеспечиваем наличие последних их версий, в которых могут быть накоплены исправления ошибок и улучшения, необходимые для завершения полного обновления дистрибутива.
Once this first upgrade is done, it is time to handle the upgrade itself, either with
apt full-upgrade
,
aptitude
, or
synaptic
(see
Раздел 6.7, «Обновление с одного стабильного дистрибутива на следующий»). You should carefully check the suggested actions before applying them: you might want to add suggested packages or deselect packages which are only recommended and known not to be useful. In any case, the frontend should come up with a scenario ending in a coherent and up-to-date
Bookworm system. Then, all you need is to do is wait while the required packages are downloaded, answer the debconf questions and possibly those about locally modified configuration files, and sit back while APT does its magic.
6.7.2. Решение проблем после обновления
Несмотря на все усилия сопровождающих Debian, масштабное обновление системы не всегда проходит так гладко, как хотелось бы. Новые версии программного обеспечения могут быть несовместимы с предыдущими (например, могло измениться их поведение по умолчанию или формат данных). Кроме того, некоторые ошибки могут остаться незамеченными, несмотря на этап тестирования, который всегда предшествует выпуску Debian.
Чтобы предотвратить некоторые из этих проблем, вы можете установить пакет apt-listchanges, который отображает информацию о возможных проблемах в начале обновления пакета. Эта информация собирается сопровождающими пакета и помещается в /usr/share/doc/package/NEWS.Debian
файлы в интересах пользователей. Чтение этих файлов (возможно через apt-listchanges) должно помочь вам избежать неприятных сюрпризов.
Иногда вы можете обнаружить, что новая версия программного обеспечения вообще не работает. Обычно это происходит, если приложение не пользуется особой популярностью и недостаточно протестировано; Обновление, сделанное в последнюю минуту, также может привести к регрессам, которые обнаруживаются только после стабильного выпуска. В обоих случаях первое, что нужно сделать, — это просмотреть систему отслеживания ошибок по адресу
https://bugs.debian.org/package
, и проверить, сообщалось ли уже о проблеме. В этом случае она также будет указана перед началом обновления, если у вас установлен
apt-listbugs. Если это не так, вам следует сообщить об этом самостоятельно с помощью команды
reportbug
. Если об ошибке уже известно, отчёт об ошибке и связанные с ним сообщения обычно являются отличным источником информации об ошибке:
в других случаях, пользователи возможно уже нашли обходной путь решения данной проблемы и поделились этими знаниями между собой в ответах на этот отчёт;
Кроме того в других случаях, пакет с исправленной ошибкой может быть уже приготовлен и имеется об этом публикация от сопровождающих.
В зависимости от серьёзности ошибки новая версия пакета может быть подготовлена специально для новой редакции стабильного выпуска. В этом случае исправленный пакет становится доступным в разделе
proposed-updates
зеркал Debian (см.
Раздел 6.1.2.3, «Предлагаемые обновления»). Соответствующую запись затем можно временно добавить в файл
sources.list
, а обновлённые пакеты можно установить с помощью команды
apt
или
aptitude
.
Иногда исправленный пакет ещё недоступен в этом разделе, поскольку он ожидает проверки менеджерами стабильной версии. Вы можете проверить, так ли это на их веб-странице. Перечисленные там пакеты пока недоступны, но вы, по крайней мере, знаете, что процесс публикации продолжается.
6.7.3. Очистка после обновления
APT обычно обеспечивает чистое обновление, добавляя новые и обновлённые зависимости или удаляя конфликтующие пакеты. Но даже такой замечательный инструмент не может охватить все задачи, с которыми столкнутся пользователи и администраторы после обновления, поскольку они требуют человеческого решения.
6.7.3.1. Пакеты, удалённые из архива Debian
Иногда ftp-мастера Debian удаляют пакеты из архива Debian, потому что они содержат критические для выпуска ошибки, были оставлены вышестоящим автором или сопровождающим пакета или просто достигли конца срока службы. В этом случае в более новой версии Debian больше не будет поставляться этот пакет. Чтобы найти все пакеты, у которых нет исходного кода, используйте команду apt-show-versions
:
$
apt-show-versions | grep "No available version"
Аналогичного результата можно добиться с помощью команды aptitude search ~o
. Если найденные пакеты больше не нужны, их следует удалить из системы, поскольку они больше не будут подвергаться никаким обновлениям для критических ошибок или ошибок, связанных с безопасностью.
6.7.3.2. Пакеты-пустышки и переходные пакеты
Иногда пакету может потребоваться получить новое имя. В этом случае часто старый пакет сохраняется как (почти) пустой пакет, в зависимости от нового и установки только обязательных файлов в
/usr/share/doc/package/
. Такие пакеты называются «пустышками» или «переходными» пакетами. Если ответственный специалист по сопровождению пакета также изменил раздел этого пакета на
oldlibs
, то такие инструменты, как
aptitude
,
deboprhan
, или
debfoster
(см. врезку
АЛЬТЕРНАТИВА deborphan
и debfoster
) могут подхватить эти пакеты, чтобы предложить их удаление.
К сожалению, в настоящее время не существует надежного способа гарантировать, что эти пакеты будут автоматически удалены или выбраны упомянутыми выше инструментами. Один из способов проверить, установлены ли в системе некоторые из этих пакетов, — просмотреть описания установленных пакетов, а затем проверить результаты. Будьте осторожны, не планируйте автоматическое удаление результатов, поскольку этот метод может привести к ложным срабатываниям:
$
dpkg -l | grep ^ii | grep -i -E "(transition|dummy)"
6.7.3.3. Старые или неиспользуемые конфигурационные файлы
Если обновление прошло успешно, возможно, в файле конфигурации есть какие-то проблемы, либо из dpkg (см.
Раздел 5.2.3, «Контрольные суммы, список конфигурационных файлов.»), ucf или из удалённых пакетов. Последнее может быть вычищено
purged используя
apt autoremove --purge
. Файлы конфигурации, которые обрабатывались
dpkg или
ucf в процессе обновления некоторые аналоги остались со специальным суффиксом, например
.dpkg-dist
,
.dpkg-old
,
.ucf-old
. Используйте команду
find
или
locate
чтобы их отследить. Если они больше не пригодятся, их можно удалить.
Имейте в виду, что при очистке также удаляются данные, созданные с помощью определённого пакета (например, файлы базы данных, тома и контейнеры docker и т.д.). Всегда должны быть резервные копии на случай ненамеренного удаления данных.
6.7.3.4. Файлы не принадлежащие какому либо пакету
Политика Debian требует, чтобы пакеты не оставляли после себя файлы после очистки. Нарушение этого принципа является серьезной ошибкой, и вы редко с ней столкнетесь. Если да, сообщите об этом; и если вам интересно, вы можете использовать пакет cruft или cruft-ng, чтобы проверить вашу систему на наличие файлов, не принадлежащих какому-либо пакету.