На главную
- Инструкции для UNIX-систем
- Обзор
- Подключение к серверу по SSH
- Подключение к серверу по SFTP
- Авторизация по SSH-ключу
- Смена или сброс пароля root
- Смена пароля root для MySQL
- Добавление пользователей
- Управление правами доступа
- Защита SSH от подбора пароля. Fail2ban
- Создание дампа базы и восстановление данных
- Установка LAMP на Ubuntu
- Установка phpMyAdmin на Ubuntu с LAMP
- Установка SSL-сертификата на Nginx
- Установка модулей PHP (CentOS)
- Установка модулей PHP (Debian / Ubuntu)
- Настройка параметров PHP (CentOS)
- Настройка параметров PHP (Debian / Ubuntu)
- Настройка перенаправлений
- Настройка перенаправлений (Nginx)
- Настройка FTP в Ubuntu 20.04
- Оптимизация MySQL с помощью MySQLTuner
- Сканирование с помощью ClamAV
- Управление службами в systemd
- Логирование в systemd
- Аудит системных событий
- Добавление дополнительного IP
- Настройка статического IP
- Добавление и удаление диска
- Изменение размера диска
- Монтирование резервных копий
- Создание swap, изменение его размера
- Установка и удаление программ. Менеджеры пакетов
- Установка графической оболочки XFCE на Ubuntu
- Настройка iptables
- Настройка OpenVPN
- Установка произвольной ОС на сервер
- Удаленный доступ к MySQL
- Установка QEMU-агента
- Установка Zabbix-агента
- Установка и работа с PostgreSQL
- Установка почтового сервера iRedMail
- Установка SSL на сервер с Keitaro
- Запуск Wordpress на сервере c Ubuntu
- Запуск бота в фоновом режиме
- Установка сертификатов Минцифры
- Подготовка образа для создания облачного сервера
- Установка Minecraft на CentOS 7
- Запуск сервера Minecraft
- Запуск сервера с CS 1.6 и EngineGP
- Запуск сервера RageMP
- Диагностика и решение проблем
- Обзор
- Базовая диагностика при проблемах в работе сайта
- Проблемы с базой данных
- Анализ дискового пространства: ncdu, du
- Данные о дисках: df, lsblk, parted, fdisk
- Контроль нагрузки и процессов: top, htop, atop
- Завершение процессов OOM Killer
- Переполнение inodes
- Проверка файловой системы
- Ускорение работы сайта: перенос MySQL в tmpfs
- Устранение ошибки «Could not get lock /var/lib/dpkg/lock»
- Другие возможные проблемы
- Инструкции для Windows
- Панели управления
Устранение ошибки «Could not get lock /var/lib/dpkg/lock»
Иногда при запуске утилиты apt
или apt-get
вы можете получить ошибку в терминале:
E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
Формулировка ошибки и путь к lock-файлу могут отличаться в зависимости от конкретного случая, но если речь идет о невозможности заблокировать файл dpkg
, все они будут устраняться схожими методами.
В целом, ошибка связана с тем, что файл менеджера пакетов dpkg
уже заблокирован — то есть, уже выполняется какой-то процесс, который его задействует, либо же выполнение процесса было завершено некорректно, из-за чего мы сейчас получаем ошибку.
В первую очередь рекомендуем подождать несколько минут и попробовать запустить apt
снова. Вполне возможно, что выполняемый процесс через пару минут автоматически завершится, и вы сможете продолжить работу.
Если же проблема сохраняется, ее можно решить следующими способами.
Способ 1. Завершить процесс принудительно
Выполните команду ниже, чтобы найти все запущенные экземпляры утилиты apt
:
ps aux | grep -i apt
В выводе отобразятся активные процессы, а также их ID (второй столбец).
Если в выводе будет
apt.systemd.daily update
, рекомендуем не завершать такой процесс. Это утилита автоматической проверки и установки обновлений — просто дождитесь завершения ее работы.
Завершить ненужный процесс можно командой:
sudo kill -9 ID_процесса
Другой вариант — завершить все процессы утилит apt
и apt-get
сразу, не проверяя конкретные процессы. Это можно сделать командой:
sudo killall apt apt-get
Способ 2. Удалить файлы блокировки
Если предыдущий способ не помог, вероятнее всего, проблема связана не с активными процессами apt
или apt-get
, а с некорректным завершением одного из процессов ранее.
Сначала воспользуемся командой lsof
, чтобы посмотреть, каким процессом используется lock-файл.
Последовательно выполните команды:
sudo lsof /var/lib/dpkg/lock
sudo lsof /var/lib/dpkg/lock-frontend
sudo lsof /var/lib/apt/lists/lock
sudo lsof /var/cache/apt/archives/lock
В ответ команда может не выдать ничего или выдать одно или несколько чисел — это ID процессов. Завершите их, указывая полученные ID:
sudo kill -9 ID_процесса
Затем удалите lock-файлы:
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
При удалении вы можете получать ошибки вида «Нет такого файла или каталога» — их можно просто проигнорировать.
В завершение переконфигурируйте пакеты с помощью команды:
sudo dpkg --configure -a
Попробуйте снова запустить apt
или apt-get
— все должно работать корректно.