Поиск по сайту:

Исправить «Невозможно заблокировать каталог администрирования (/var/lib/dpkg/)» в Ubuntu.


При использовании команды apt-get или относительно нового инструмента управления пакетами APT в Ubuntu Linux или его производных, таких как Linux Mint (который я фактически использую в качестве основной операционной системы для выполняя повседневную работу), вы могли столкнуться с ошибкой: «невозможно заблокировать каталог администрирования (/var/lib/dpkg/) — это другой процесс, использующий его » командная строка.

Эта ошибка может сильно раздражать, особенно новых пользователей Linux (Ubuntu), которые могут не знать точно причину ошибки.

Ниже приведен пример, показывающий ошибку файла блокировки в Ubuntu 16.10:

tecmint@TecMint:~$ sudo apt install neofetch
[sudo] password for tecmint:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg), is another process using it?

Вывод ниже является еще одним возможным примером той же ошибки:

E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/ 
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) 
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Как устранить вышеуказанную ошибку, если вы столкнетесь с ней в будущем? Существует несколько способов устранения этой ошибки, но в этом руководстве мы рассмотрим два самых простых и, вероятно, наиболее эффективных способа ее решения.

1. Найдите и завершите все процессы apt-get или apt.

Запустите команду ниже, чтобы создать список всех процессов, имена которых содержат слово apt. Вы получите список, включающий все apt или apt-get<. процессы с использованием команд ps и grep вместе с конвейером.

ps -A | grep apt

Для каждого процесса apt-get или apt, который вы видите в выводе приведенной выше команды, завершите каждый процесс с помощью приведенной ниже команды.

ID процесса (PID) находится в первом столбце на скриншоте выше.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Например, в приведенной ниже команде, где 9 — номер сигнала для сигнала SIGKILL, будет завершен первый процесс apt:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Удалите файлы блокировки.

Файл блокировки просто предотвращает доступ к другим файлам или некоторым данным в вашей системе Linux. Эта концепция также присутствует в Windows и других операционных системах.

После запуска команды apt-get или apt в любом из этих каталогов создается файл блокировки /var/lib/apt/lists/ . , /var/lib/dpkg/ и /var/cache/apt/archives/.

Это помогает избежать прерывания уже запущенного процесса apt-get или apt пользователем или другими системными процессами, которым необходимо работать с файлами, используемыми apt-get или apt. Когда процесс завершает выполнение, файл блокировки удаляется.

Важно. Если блокировка в двух вышеперечисленных каталогах все еще снимается без заметного запуска процесса apt-get или apt, это может означать, что процесс был приостановлен по одной причине. или другое, поэтому вам необходимо удалить файлы блокировки, чтобы устранить ошибку.

Сначала выполните команду ниже, чтобы удалить файл блокировки в каталоге /var/lib/dpkg/:

sudo rm /var/lib/dpkg/lock

После этого принудительно переконфигурируйте пакет(ы) следующим образом:

sudo dpkg --configure -a

Альтернативно удалите файлы блокировки в каталоге /var/lib/apt/lists/ и кэше, как показано ниже:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock

Затем обновите список источников пакетов следующим образом:

sudo apt update
OR
sudo apt-get update

В заключение мы рассмотрели два важных метода решения распространенной проблемы, с которой сталкиваются пользователи Ubuntu (и ее производных) при запуске apt-get или apt, а также команды способностей.

Есть ли у вас какие-либо другие надежные методы, предназначенные для решения этой распространенной ошибки? Тогда свяжитесь с нами через форму обратной связи ниже.

Кроме того, вы также можете узнать, как найти и завершить запущенные процессы, а также прочитать простое руководство по командам kill, pkill и killall для завершения процесса в Linux.