Ошибка apt Could not get lock: пакеты ставит другая программа
Пакеты на сервере в эту минуту ставит или обновляет другая программа — например, автоматические обновления. Дождитесь, пока она закончит, и повторите команду. Файл блокировки не удаляйте.
Содержание 10
Что сделать прямо сейчас
- Посмотрите в сообщении номер и имя процесса, который держит блокировку, — шаг 1.
- Подождите несколько минут и повторите ту же команду — шаг 2.
- Если блокировку держит ваша же команда в другом окне, доведите её до конца там — шаг 3.
- Не удаляйте файлы lock и не перезагружайте сервер посреди установки — чего не делать.
Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
Что значит это сообщение
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (unattended-upgr)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?Ставить, обновлять и удалять пакеты одновременно может только одна программа. Пока она работает, она держит блокировку файла /var/lib/dpkg/lock-frontend. Вторая команда видит, что блокировка занята, и останавливается, чтобы не испортить базу установленных пакетов.
В сообщении сказано, кто держит блокировку: номер процесса (здесь 1234) и его имя в скобках. Строка N: предупреждает, что удалять файл блокировки бесполезно и опасно.
Если такое пишет sudo apt update, в сообщении будет другой файл — /var/lib/apt/lists/lock. Смысл тот же: список пакетов в эту минуту обновляет другая программа.
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 1234 (apt-get)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/Причины:
- работают автоматические обновления: в Ubuntu Server программа unattended-upgrades стоит с самого начала, запускается по расписанию и ставит обновления безопасности сама;
- в другом окне терминала или в другом подключении по SSH идёт установка, которую вы запустили раньше;
- установку запустил скрипт или панель управления сервером.
Шаг 1. Посмотрите, кто держит блокировку
Имя процесса — в скобках в конце строки E: Could not get lock. Что оно значит:
| Имя в скобках | Что это |
|---|---|
| unattended-upgr | Автоматические обновления. Полное имя программы — unattended-upgrade, в сообщении оно обрезано |
| apt или apt-get | Другая установка или обновление — ваша или запущенная скриптом |
| dpkg | Установка пакета, которую запустил apt или другая программа |
Подробнее о процессе — полная команда и время запуска:
ps -fp 1234Вместо 1234 подставьте номер из своего сообщения. В столбце CMD будет команда целиком, в столбце STIME — время запуска. Если команда вывела только строку заголовка UID PID PPID …, процесса уже нет: повторите свою команду.
Шаг 2. Подождите и повторите команду
Автоматические обновления заканчиваются сами. Подождите несколько минут и повторите ту же команду. Повторять можно сколько угодно раз: пока блокировка занята, apt ничего на сервере не меняет.
Команда apt, запущенная вами в терминале, умеет ждать сама. Вместо ошибки она выводит строку, которая начинается со слов Waiting for cache lock: — «жду блокировку», — и продолжит работу, как только блокировка освободится. Окно в это время не закрывайте.
Команда apt-get сама не ждёт и сразу выводит ошибку. Если вы ставите пакеты через apt-get, подождите и запустите её снова.
Шаг 3. Если это ваша установка в другом окне
Если в выводе ps -fp в столбце CMD видна команда, которую вы запускали сами, — например, sudo apt upgrade, — найдите то окно терминала. Установка может стоять на вопросе и ждать ответа: Do you want to continue? [Y/n] или окно с выбором настроек. Прочитайте вопрос, ответьте и дождитесь, пока вернётся приглашение командной строки.
Если то окно уже закрыто и подключение по SSH оборвалось, установка могла завершиться вместе с ним. Повторите свою команду. Если apt напишет dpkg was interrupted, прошлую установку нужно доделать — как, сказано в разборе этой ошибки.
Чего не делать
- Не удаляйте файлы
lock-frontend,lockиlists/lock. Блокировку держит работающий процесс, а не сам файл: файл без процесса ничему не мешает. Если удалить его во время установки, две программы смогут менять пакеты одновременно и испортят базу пакетов. Об этом и предупреждает строкаN:. - Не завершайте процесс командой kill и не перезагружайте сервер, пока идёт установка: пакет останется установленным наполовину.
- Если установка всё же прервалась, apt при следующем запуске напишет dpkg was interrupted — тогда доделайте её по шагам из того разбора.
Как проверить
Повторите свою команду. Если блокировка свободна, apt покажет, что собирается поставить, и спросит подтверждение или сразу начнёт работу.
Похожие ошибки
| Сообщение | Чем отличается |
|---|---|
| are you root? | Блокировку не взять из-за прав: команда запущена без sudo |
| dpkg was interrupted | Блокировка свободна, но прошлая установка не закончена |
Тексты сообщений на этой странице сверены с исходным кодом apt 2.7.14 — эта версия стоит в Ubuntu 24.04. В других версиях Ubuntu слова могут немного отличаться.
Источники
- Исходный код apt 2.7.14: fileutl.cc — тексты Could not get lock и строки N:.
- Исходный код apt 2.7.14: debsystem.cc — сообщение Unable to acquire the dpkg frontend lock и ожидание Waiting for cache lock.
- Исходный код apt 2.7.14: private-cmndline.cc — когда команда apt ждёт блокировку.
- Ubuntu Server: автоматические обновления — unattended-upgrades стоит по умолчанию.
- man ps — параметры -f и -p.
Сверено 9 октября 2026 года.
Что почитать дальше
- Как Ubuntu обновляется сама — что такое unattended-upgrades и как её настроить.
- dpkg was interrupted — если установка оборвалась.
- Все ошибки apt и sudo.
Проверено и обновлено: 09.10.2026