Ошибки

Ошибка apt unmet dependencies и held broken packages: что делать

Пакету нужны другие пакеты, а apt не может их поставить. Если apt предлагает apt --fix-broken install — выполните её. Если нет — обновите список пакетов и проверьте удержанные пакеты и сторонние репозитории.

Обновлено 09.10.2026≈ 6 мин чтения
Содержание 11

Что сделать прямо сейчас

  1. Если в выводе есть apt --fix-broken install, выполните sudo apt --fix-broken install без имён пакетов — шаг 1.
  2. Обновите список пакетов и систему: sudo apt update, затем sudo apt upgrade — шаг 2.
  3. Проверьте, не удержаны ли пакеты: apt-mark showhold — шаг 3.
  4. Если пакет из стороннего репозитория, проверьте, что он для вашей версии Ubuntu — шаг 4.

Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Что значит это сообщение

Каждому пакету нужны другие пакеты — зависимости. Ошибка значит, что apt не может поставить их так, чтобы всё сошлось. Она бывает двух видов.

Первый вид — при установке нового пакета:

The following packages have unmet dependencies:
 example-app : Depends: libexample1 (>= 2.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Выше могут быть строки Some packages could not be installed… и The following information may help to resolve the situation:. В строке с двоеточием сказано, какому пакету (example-app) что нужно (libexample1 версии 2.0 или новее) и что не так. Вместо but it is not going to be installed может стоять:

Окончание строкиЧто значит
but it is not going to be installedapt не может поставить нужный пакет
but it is not installableНужного пакета нет ни в одном подключённом репозитории
but 1.5-1 is to be installedapt поставит версию 1.5-1, а нужна другая
but 1.5-1 is installedСтоит версия 1.5-1, а нужна другая

Слова held broken packages не значат, что вы что-то сломали: apt пишет их каждый раз, когда не нашёл, как согласовать зависимости.

Второй вид — когда прошлая установка уже оставила систему с недостающими зависимостями:

You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 example-app : Depends: libexample1 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Здесь apt сам подсказывает решение — команду apt --fix-broken install.

Причины:

  • прервалась прошлая установка — тогда apt может сначала написать dpkg was interrupted;
  • пакет поставили из файла .deb, а зависимости не поставились;
  • список пакетов устарел, и apt ищет версии, которых уже нет;
  • пакет удержан командой apt-mark hold и не обновляется;
  • пакет из стороннего репозитория собран для другой версии Ubuntu.

Шаг 1. Если apt предлагает apt --fix-broken install

sudo apt --fix-broken install

Имена пакетов не пишите. apt сам найдёт, чего не хватает, покажет список и спросит Do you want to continue? [Y/n]. Прочитайте список: в нём могут быть пакеты, которые apt собирается удалить (The following packages will be REMOVED). Если среди них нужные вам программы — веб-сервер, база данных, — ответьте n и переходите к шагу 2. Если всё в порядке, нажмите Y и Enter.

После этого повторите установку, которая не прошла.

Шаг 2. Обновите список пакетов и систему

sudo apt update
sudo apt upgrade

Новому пакету могут быть нужны свежие версии библиотек. После обновления системы повторите установку.

Шаг 3. Проверьте удержанные пакеты

apt-mark showhold

Команда выводит пакеты, которые удержаны: apt не обновляет их и не меняет. Если удержанный пакет есть в строке с ошибкой, снимите удержание:

sudo apt-mark unhold libexample1

Вместо libexample1 — имя из списка. Если пакет удерживали специально — например, чтобы не обновлялась база данных, — сначала узнайте, кто и зачем это сделал.

Шаг 4. Проверьте сторонние репозитории

Посмотрите, откуда apt берёт нужный пакет:

apt-cache policy libexample1

В Version table указаны версии и адреса репозиториев. Если пакет ставится из стороннего репозитория — не с archive.ubuntu.com, security.ubuntu.com или зеркала провайдера, — проверьте, что этот репозиторий выпущен для вашей версии Ubuntu. Файлы сторонних репозиториев лежат в каталоге /etc/apt/sources.list.d/. Если репозиторий для другой версии, удалите его файл, выполните sudo apt update и поставьте программу по инструкции разработчика для вашей версии.

Чего не делать

  • Не ставьте пакеты в обход apt командами dpkg с параметрами --force: зависимости останутся несогласованными, и ошибки появятся при следующих обновлениях.
  • Не отвечайте Y, не прочитав список удаляемых пакетов.

Как проверить

Выполните sudo apt --fix-broken install. Если зависимости в порядке, apt напишет, что ничего ставить и удалять не нужно (0 upgraded, 0 newly installed, 0 to remove). Затем повторите установку своего пакета.

Похожие ошибки

СообщениеЧем отличается
dpkg was interruptedПрошлая установка не закончена — сначала доделайте её
has no installation candidateНе находится сам пакет, а не его зависимости

Тексты сообщений на этой странице сверены с исходным кодом apt 2.7.14 — эта версия стоит в Ubuntu 24.04. В других версиях Ubuntu слова могут немного отличаться.

Источники

Сверено 9 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 09.10.2026