#Что означает ошибка
Could not get lock
Менеджер пакетов блокирует базу пакетов, чтобы две программы не меняли её одновременно. Если вы запускаете apt install, а блокировку держит другой процесс (автообновления, Центр приложений, другой терминал), apt сообщает, какой PID её занимает. Чаще всего достаточно подождать 5–10 минут, потому что в Ubuntu unattended-upgrades запускается в фоне после загрузки системы.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Идёт обновлениеДругой терминал, Центр приложений или Software Updater выполняет установку. | В сообщении apt указан PID процесса. | Дождитесь завершения или закройте окно обновления. |
| Зависший процессПредыдущая установка прервана, процесс apt/dpkg остался в памяти. | Процесс висит больше 15–20 минут без активности диска. | Убейте процесс по PID и выполните dpkg --configure -a. |
Автоматические обновленияСлужба unattended-upgrades скачивает и ставит пакеты безопасности. | В ps виден unattended-upgr. | Подождите; не отключайте питание. |
| Оставшийся lock-файлПосле аварии на диске остались файлы блокировки без владельца. | lsof не находит процессов, но apt всё равно жалуется. | Удалите lock-файлы и восстановите dpkg. |
#Пошаговое решение
- Подождите несколько минутЕсли Ubuntu недавно включена или выполняет обновления, менеджер пакетов может быть занят. В терминале запустите
ps -ef | grep -E "[a]pt|[d]pkg|[u]nattended"иsudo lsof /var/lib/dpkg/lock-frontend; если виден активный процесс, дождитесь его штатного завершения. Не удаляйте lock-файлы и не останавливайте процесс черезkill -9. - Узнайте, какой процесс держит блокировкуВ Ubuntu откройте терминал сочетанием Ctrl+Alt+T и выполните
sudo lsof /var/lib/dpkg/lock-frontend. Посмотрите в столбцах COMMAND и PID имя и номер работающей программы. Если lsof не установлен, проверьтеps -ef | grep -E "[a]pt|[d]pkg|[u]nattended". Когда идёт реальная установка, дождитесь завершения; удаление lock-файла не снимает удерживаемую процессом блокировку. - Проверьте, не продолжается ли обновлениеПосмотрите состояние процессов
ps aux | grep -E "apt|dpkg|unattended"и журнал службыjournalctl -u apt-daily-upgrade.service -n 30 --no-pager. Не прерывайте работающую установку командойkill -9— можно повредить базу пакетов. Если процесс завис, сначала выясните причину по журналу. - Восстановите конфигурацию dpkg только после освобождения блокировкиЕсли
sudo lsof /var/lib/dpkg/lock-frontendбольше не показывает работающий apt/dpkg и предыдущая установка была прервана, в том же терминале выполнитеsudo dpkg --configure -aи дождитесь окончания. Если команда сообщает о зависимостях, сначала прочитайте список предлагаемых изменений, затем используйтеsudo apt -s -f installдля пробного расчёта. Не выполняйте фактическийapt --fix-broken install, если план удаляет критически важные пакеты. - Не удаляйте lock-файлы вручнуюДождитесь завершения процессов apt/dpkg. Затем при необходимости выполните
sudo dpkg --configure -a. Ручное удаление файлов блокировки не освобождает блокировку активного процесса и может привести к повреждению состояния пакетов. - Повторите только прежнее действие после восстановленияЗакройте графический «Менеджер обновлений» или дождитесь завершения автообновления. После того как блокировка исчезла, выполните ту же команду, которая первоначально не смогла получить lock — например,
sudo apt update, если ошибка была именно при обновлении индекса. Не запускайте автоматически полноеapt upgrade: оно меняет установленные пакеты и не нужно для проверки снятия блокировки. - Только диагностика: определите, какая установка держит блокировкуLinux · Терминал (Bash)С осторожностьюНужен sudoТолько диагностика: определите, какая установка держит блокировку. Дождитесь окончания процесса; не удаляйте lock-файлы и не завершайте установку принудительно.
ps aux | grep -E "[a]pt|[d]pkg|[u]nattended"sudo lsof /var/lib/dpkg/lock-frontendsudo lsof /var/lib/apt/lists/lockКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.