Debian Debian GNU/Linux

Debian: пакет удерживается и не обновляется при apt full-upgrade

  • Обновлено
  • Чтение ≈ 2 минуты
  • Нужны права администратора

Краткий ответ

APT не обновляет определённый пакет даже после full-upgrade. Причина может быть в отметке hold, зависимостях, pinning или недоступной версии, а не в неисправности команды.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

В выводе apt full-upgrade пакет остаётся прежней версии, помечен «kept back», «held» или просто отсутствует среди обновляемых.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Установлена блокировка holdАдминистратор зафиксировал версию пакета.Имя есть в apt-mark showhold.Выяснить причину и снять блокировку только по согласованию.
Конфликт зависимостейДля новой версии требуются дополнительные изменения пакетов.Предварительный расчёт показывает удаление или замену других компонентов.Не подтверждать опасный план, найти совместимые версии.
Неверный приоритет или источникПодключён иной выпуск/задана политика APT.apt-cache policy показывает Candidate равным старому пакету.Проверить файлы preferences и sources, не смешивая выпуски.

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

  1. Найдите точное имя пакетаОткройте Терминал. Выполните sudo apt update для обновления списка версий; затем apt list --upgradable для просмотра доступных обновлений. Если источники возвращают ошибки подписи, сначала исправьте их. Не выполняйте установку до выяснения причины удержания.
  2. Выясните, есть ли явный запретВыполните apt-mark showhold — команда выводит имена закреплённых пакетов. Если нужное имя встречается, узнайте, кто установил блокировку (например, программа администрирования или критический драйвер). Отсутствие имени означает, что причина может быть другой.
  3. Проверьте установленную и доступную версииВведите apt-cache policy ИМЯ_ПАКЕТА, заменив ИМЯ_ПАКЕТА настоящим именем из списка, без пробелов. Сравните Installed, Candidate и адрес репозитория. Если Candidate отсутствует, пакет может быть удалён из текущего выпуска или не подходить по архитектуре — не добавляйте наугад чужие репозитории.
  4. Посмотрите план обновления без примененияПопросите администратора выполнить sudo apt-get -s dist-upgrade; опция -s рассчитывает изменение и ничего не устанавливает. Внимательно прочитайте строки Remv, Inst и Conf. Если APT собирается удалить важный пакет, драйвер или ядро, не подтверждайте реальное обновление.
  5. Снимайте hold только после согласованияЕсли удержание явно устарело и известны последствия, администратор может выполнить sudo apt-mark unhold ИМЯ_ПАКЕТА, указав точное имя; сразу запишите старое состояние для отката sudo apt-mark hold ИМЯ_ПАКЕТА. На обслуживаемом сервере лучше сохранять запрет до окна обслуживания. После снятия повторно просмотрите предварительный план обновления.
  6. Проверьте результат и причины сохраняющегося удержанияСнова выполните apt-cache policy ИМЯ_ПАКЕТА, apt-mark showhold, затем предварительный расчёт. Если кандидат есть, но обновление невозможно, выясните конфликт пакетов по показанным зависимостям, не применяя --force-* и не удаляя критические компоненты.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)КомандаНужен sudo
Обновление списков репозиториев, администратор.
sudo apt update
Linux · Терминал (Bash)Команда
Показывает имена удерживаемых пакетов.
apt-mark showhold
Linux · Терминал (Bash)Команда
Список доступных обновлений.
apt list --upgradable
Linux · Терминал (Bash)КомандаНужен sudo
Только симуляция изменений; не устанавливает пакеты.
sudo apt-get -s dist-upgrade

#Как проверить результат

После согласованного обновления apt-cache policy показывает Installed на ожидаемой версии и больше нет непредвиденных удалений зависимостей.

#Если проблема не устранена

Если Candidate устарел или конфликтуют зависимости, передайте администратору вывод apt-cache policy, apt-mark showhold и предварительного расчёта; не переключайте весь Debian на testing/unstable ради одного пакета.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.