apt и dpkg Linux

APT: unmet dependencies / held broken packages

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

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

Выполните apt --fix-broken install и проверьте репозитории.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Стандартные команды
  5. Зафиксированные пакеты и сторонние репозитории
  6. Если установка .deb файла не удаётся
  7. Если сломан репозиторий

#Что означает ошибка

Сообщение
held broken packages

«The following packages have unmet dependencies» и «You have held broken packages» в Debian, Ubuntu и Mint означают, что менеджер пакетов не может подобрать совместимые версии: в системе есть пакеты из сторонних репозиториев, частично установленные обновления или «зафиксированные» (hold) пакеты.

Не используйте --force-yes и не удаляйте системные пакеты вслепую: можно потерять рабочий стол.

Начните с исправления сломанных зависимостей и обновления индекса.

Выполните apt --fix-broken install и проверьте репозитории.

#Причины и решения

Возможная причинаКак узнатьЧто делать
КонфликтПакеты.Проявляется как «held broken packages» или близкий по смыслу сбой.fix-broken.
РепозиторииСмешаны.Проявляется как «held broken packages» или близкий по смыслу сбой.Исправьте.
ВерсииНесовпадение.Проявляется как «held broken packages» или близкий по смыслу сбой.Обновите.
holdЗакреплены.Проявляется как «held broken packages» или близкий по смыслу сбой.Снимите.

#Пошаговое решение

  1. Обновите списки пакетовВ Ubuntu/Debian откройте терминал Ctrl+Alt+T и запустите sudo apt update. При запросе введите пароль администратора и дождитесь завершения. Если появилось NO_PUBKEY, Release file или Temporary failure resolving, исправьте соответствующий источник/сеть, прежде чем решать зависимости. Если списки обновились, выполните apt-mark showhold и предварительную симуляцию sudo apt-get -s -f install; не подтверждайте операции с удалением нужных пакетов до анализа.
  2. Исправьте сломанные зависимостиСначала запустите sudo apt -s --fix-broken install: это пробный расчёт, без установки. Прочитайте список удаления и установки, убедитесь, что нет важных системных пакетов. Только при понятном и безопасном плане выполните sudo apt --fix-broken install; если результат предлагает удалить ядро или рабочую среду, остановитесь.
  3. Завершите прерванные установкиВ терминале Ubuntu/Debian выполните apt-mark showhold. Если список не пуст, изучите названия и причину фиксации. Снять конкретную фиксацию может администратор командой sudo apt-mark unhold ИМЯ_ПАКЕТА после подстановки фактического имени; это не стоит делать автоматически для ядра, драйвера или корпоративного ПО. После изменения проверьте план установки sudo apt-get -s -f install и остановитесь, если предлагается удалить важные программы.
  4. Снимите фиксацию с пакетовСначала выполните apt-mark showhold и разберите, почему каждый пакет был зафиксирован. Если фиксация мешает обновлению и её действительно можно снять, администратор выполняет sudo apt-mark unhold ИМЯ_ПАКЕТА с фактическим именем из списка. Затем проверьте sudo apt-get -s -f install, прежде чем устанавливать зависимости. Не снимайте все фиксации без анализа: это может нарушить совместимость драйверов и приложений.
  5. Отключите несовместимые PPAОткройте «Программы и обновления» → «Другое ПО», если это Ubuntu с графическим интерфейсом, либо просмотрите /etc/apt/sources.list.d/ в терминале. Найдите сторонний PPA, совпадающий с пакетом из сообщения apt, и временно отключите только этот источник; затем выполните sudo apt update и посмотрите план исправления без выполнения sudo apt-get -s -f install. Не удаляйте все PPA наугад и не смешивайте выпуски Ubuntu.

#Стандартные команды

Выполните по порядку: sudo apt update, sudo apt --fix-broken install, sudo dpkg --configure -a, sudo apt full-upgrade. Затем повторите установку нужного пакета. Если apt жалуется на конкретный пакет, посмотрите зависимости: apt-cache policy пакет и apt-cache depends пакет.

#Зафиксированные пакеты и сторонние репозитории

Список зафиксированных пакетов: apt-mark showhold; снять фиксацию — sudo apt-mark unhold пакет. Проверьте сторонние источники в /etc/apt/sources.list.d/ и PPA: несовместимый PPA для другой версии Ubuntu — частая причина. Отключите его: sudo add-apt-repository --remove ppa:имя/ppa или выполните sudo ppa-purge ppa:имя/ppa, чтобы вернуть версии из основного репозитория.

#Если установка .deb файла не удаётся

Устанавливайте локальные пакеты через apt, он сам подтянет зависимости: sudo apt install ./пакет.deb. Для конфликта версий можно собрать список: sudo apt -f install покажет, что будет удалено. Читайте вывод внимательно, прежде чем подтверждать.

#Если сломан репозиторий

Проверьте, что /etc/apt/sources.list соответствует вашей версии дистрибутива (lsb_release -a). Для смены зеркала используйте «Программы и обновления → Загрузить с» или замените домен на archive.ubuntu.com. Проверьте свободное место df -h / и очистите кэш sudo apt clean. Для окончательного выхода из тупика используйте aptitude: sudo aptitude install пакет предлагает варианты разрешения конфликта.

Linux · Терминал (Bash)КомандаНужен sudo
Показывает удерживаемые пакеты, пробный план восстановления и доступные версии. Удаление пакетов и full-upgrade недопустимы до проверки конкретного конфликта и подготовки отката.
apt-mark showhold
sudo apt-get -s -f install
apt-cache policy

Так эту ошибку тоже называют

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

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