Одной из самых известных особенностей 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
(
Раздел 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
(
Раздел 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. Cleaning Up after an Upgrade
APT обычно обеспечивает чистое обновление, добавляя новые и обновленные зависимости или удаляя конфликтующие пакеты. Но даже будучи таким замечательным инструментом, он не может охватить все задачи, с которыми столкнутся пользователи и администраторы после обновления, поскольку они требуют человеческого решения.
6.7.3.1. Пакеты удаленные из архива Debian
Sometimes the Debian ftpmasters remove packages from the Debian archive, because they contain release critical bugs, were abandoned by their upstream author or their package maintainer, or simply reached their end of life. In this case, a newer Debian release does not ship the package anymore. To find all packages, which do not have a package source, use the apt-show-versions
command:
$
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. Старые или неиспользуемые конфигурационные файлы
If the upgrade was successful, there might be some configuration file cruft, either from dpkg (see
Раздел 5.2.3, «Checksums, List of Configuration Files, et al.»), ucf or from removed packages. The latter can be
purged by using
apt autoremove --purge
. The configuration files that were handled by
dpkg or
ucf during the upgrade process have left some counterparts with a dedicated suffix, e.g.
.dpkg-dist
,
.dpkg-old
,
.ucf-old
. Using the
find
or
locate
command can help to track them down. If they are no longer of any use, they can be deleted.
Be aware that a purge also removes the data created with a particular package (e.g. database files, docker volumes and containers, etc.). There should always be backups in place in case data gets removed accidentally.
6.7.3.4. Файлы не принадлежащие какому либо пакету
Политика Debian требует, чтобы пакеты не оставляли после себя файлы после очистки. Нарушение этого принципа является серьезной ошибкой, и вы редко с ней столкнетесь. Если да, сообщите об этом; и если вам интересно, вы можете использовать пакет cruft или cruft-ng, чтобы проверить вашу систему на наличие файлов, не принадлежащих какому-либо пакету.