Dpkg ошибка dpkg frontend lock заблокирована другим процессом

When running sudo dpkg --configure -a, I am getting the following error on my terminal. Can some one please help?

dpkg: error: dpkg frontend is locked by another process

dpkg: error: dpkg frontend is locked by another process

banaanihillo's user avatar

asked May 13, 2019 at 19:43

Akshay's user avatar

2

Let all the ongoing processes/installations/updates to complete, retry once all the installation/updates get completed. It will work.

If you’ve not started any installation/updates then try the following method.

Use the following command in the terminal, it will give you PID

sudo lsof /var/lib/dpkg/lock-frontend

then copy the value of PID and execute the following command with adding your copied PID in place of

sudo kill -9 <PID>

answered Apr 10, 2020 at 11:05

Vipul Patil's user avatar

Vipul PatilVipul Patil

2412 silver badges7 bronze badges

2

Unable to acquire the dpkg frontend lock error is the most common error that happens with Linux systems, this can be solved easily.  This error is being displayed because another programme is attempting to update Ubuntu. A command or application locks the dpkg file when upgrading the system or installing new software (Debian package manager).

The error “unable to acquire the dpkg frontend lock” happened due to various reasons and can be solved by understanding the cause of the problem.

We can run the following command to check the error log and take a look at the process ID and error message.

$ sudo lsof /var/lib/dpkg/lock-frontend

frontend-lock-log

So here are a few common causes and their fixes:- 

1.  Unprivileged access 

sudo-error

$ apt install nano

E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

In this case, the user doesn’t have access to run the particular command without having root access so users must use sudo to run the command before running it.

2. Broken package

dpkg: error:

his package provides frequent translation

updates.': version string has embedded spaces

E: Sub-process /usr/bin/dpkg returned an error code (2)

sometimes when we try to install the app, the app can be broken due to connection loss and various other reasons, in this case, we can run the following command to fix this:-

$ sudo dpkg --configure -a
or
$ sudo apt install -f

3. Installing an app from unlisted repositories or missing repositories

add=ppa

$ sudo apt install grub-customizer 

E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

installed

Due to a typo or unavailability of apps in the repository it happens, in this case, you have to check the app ppa repository and add to the package repository, see in this thread for more details.

4. Frontend is locked by another process

Check if any process is running and using apt/dpkg

$ ps aux | grep -i apt

this is a dpkg error and finding the process id using the log command and by killing that PID will fix the issue

$ sudo kill -9 <PID>
or
$ sudo killall program_name

kill-example

5. Delete the lock file to fix the issue

This is a brute force method and you should use it carefully, although this also fixes the issue but system can be broken if you use this without understanding the error. Often restarting system can also fix the error so you must try restart before trying this step.

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

delete-lock-file

I hope this article is helpful, give a like, happy learning.

Last Updated :
23 Nov, 2022

Like Article

Save Article

Ошибка dpkg lock

Описание проблемы. Ошибка

При выполнении в Ubuntu команды вида:

sudo apt install someprogram

в терминале появляется ошибка:

E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock-frontend - open (11: Ресурс временно недоступен)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

Ошибка может появляться не только при выполнении apt install, но и при любых других действиях с apt или apt-get.

Сообщение об ошибке может немного отличаться в зависимости от различных условий. Например, могут появляться следующие ошибки:

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?

Как исправить

Данные ошибки появляются, когда программа apt-get (apt) не может получить доступ к файлу блокировки /var/lib/dpkg/lock*. Данный файл используется, чтобы запретить одновременное выполнение операций, связанных с управлением пакетами в системе, так как при одновременном изменении данных о пакетах будет нарушена целостность «пакетной базы».

Обычно существует две основные причины появления, описанных выше ошибок:

  1. В данный момент уже выполняется экземпляр программы apt-get (apt).
  2. Предыдущий вызов apt-get (apt) завершился некорректно.

Способ первый

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

ps aux | grep -i apt

Вывод команды может быть следующим:

root 9425 0.0 0.0 79516 3752 pts/1 S+ 10:31 0:00 sudo apt-get install inkscape
pingvin+ 9456 0.0 0.0 38892 944 pts/0 S+ 10:32 0:00 grep --color=auto -i apt

dpkg lock завершение apt

В первой строке мы видим, что уже есть работающий экземпляр программы apt-get, который имеет PID (идентификатор) 9425. Вторая строка относится к нашей команде grep, которую мы запустили с аргументом apt, поэтому она вывела саму себя. Итак, нас интересует только первая строка.

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

sudo kill -9 9425

После выполнения данной команды, процесс с идентификатором 9425 завершится.

Можно воспользоваться еще одним простым способом — это завершить все экземпляры программ apt и apt-get сразу. Для этого можно выполнить команду:

sudo killall apt apt-get

Способ второй

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

Нам нужно удалить все файлы блокировки. Для этого выполняем команды:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend

Если при выполнении каких-нибудь из этих команд появится сообщение: rm: невозможно удалить ’/var/../lock’: Нет такого файла или каталога, это нормально, не обращайте на него внимания.

После этого нужно выполнить переконфигурацию (донастройку) пакетов:

sudo dpkg --configure -a

Заключение

Мы рассмотрели два способа решения ошибок, связанных с доступом к файлу блокировки dpkg. Как правило, эти способы помогают. Если у вас остались какие-либо вопросы, оставляйте их в комментариях.

Недавно, устанавливая приложение с помощью команды apt в Ubuntu, я столкнулся со следующей ошибкой:

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?

В некоторых случаях подобные ошибки возникают при использовании Центра программного обеспечения.

И в целом, они напоминают еще одну распространенную ошибку:

Unable to lock directory/var/cache/apt/archives/ и, как говорится «подобное лечится подобно», а похожие ошибки и фиксятся похоже.

Как исправить ошибку «Unable to lock the administration directory (/var/lib/dpkg/)»

Вы видите эту ошибку, потому что какая-то другая программа обновляет Ubuntu прямо сейчас. Когда команда или приложение обновляют систему или устанавливают новое программное обеспечение, они блокируют файл dpkg (менеджер пакетов Debian).

Эта блокировка выполняется для того, чтобы два процесса не изменяли содержимое файла dpkgодновременно, так как это может привести к неоправданному риску поломки всей системы.

Давайте посмотрим, что мы можем сделать, чтобы решить проблему «unable to lock the administrator directory».

Метод 0:

Первое, что следует сделать, это проверить, может ли какая-то другая программа запускать обновление системы или устанавливать программу.

Если вы используете командную строку, проверьте, не запускает ли одно из следующих приложений: Software Center, Software Updater, менеджер пакетов Synaptic или Gdebi, какое-нибудь обновление / установку. В случае положительного ответа – просто подождите, пока программа завершит выполнение.

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

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

ps aux | grep -i apt

В моем случае команда вернула такой результат:

abhishek@nuc:~$ ps aux | grep -i apt
root 1464 0.0 0.0 4624 772 ? Ss 19:08 0:00 
/bin/sh /usr/lib/apt/apt.systemd.daily update 
root 1484 0.0 0.0 4624 1676 ? S 19:08 0:00 
/bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held update 
_apt 2836 0.8 0.1 96912 9432 ? S 19:09 0:03 
/usr/lib/apt/methods/http 
abhishek 6172 0.0 0.0 21532 1152 pts/1 S+ 19:16 0:00 
grep --color=auto -i apt

Если вы, как и я, видите, что apt используется такой программой, как apt.systemd.daily update, вам повезло, мой дорогой читатель.

Это «демон», который работает в фоновом режиме и автоматически проверяет наличие обновлений системы при запуске системы.

В Ubuntu 18.04 и более поздних версиях он может даже попытаться загрузить и установить важные обновления безопасности самостоятельно. По крайней мере, такие опции я увидел в дефолтных настройках в инструменте «Программное обеспечение и обновления» на рабочем столе Ubuntu.

Если вы находитесь на сервере Ubuntu, вы можете проверить, включены ли у вас автоматические обновления, проверив содержимое файла /etc/apt/apt.conf.d/20auto-upgrades.

Итак, если вы выяснили, что apt.systemd.daily использует процесс apt, все, что вам нужно сделать, это подождать несколько минут. Когда автоматическое обновление завершится, вы сможете установить свое программное обеспечение как обычно.

В качестве постоянного решения вы можете полностью отключить как автоматическую проверку наличия обновлений, так и сами автообновления, однако я бы не советовал, из соображений безопасности.

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

Метод 1:

Используйте командную строку Linux, чтобы найти и остановить запущенный процесс. Для этого используйте команду ниже:

ps aux | grep -i apt

Эта команда покажет вам идентификатор процесса, выполняющего apt или apt-get. В приведенном ниже примере идентификатор процесса — 7343. Не обращайте внимания на последнюю строку, содержащую «grep –color = auto».

Вы можете использовать идентификатор процесса, чтобы завершить его, отправив команду SIGTERM. Замените <process_id> числом, которое вы получили в выводе предыдущей команды.

sudo kill < process_id > 

Проверьте, был ли процесс остановлен, запустив команду «ps aux | grep -i apt» еще раз. Если он все еще работает, принудительно уничтожьте его сигналом SIGKILL:

sudo kill -9 < process_id > 

Другой, более простой способ — использовать команду killall, она убьет все экземпляры запущенной программы:

sudo killall apt apt-get

Метод 2:

Вышеупомянутый метод решит проблему в большинстве случаев. Но мой случай, по закону подлости, был немного другим. Я обновлял свою систему и случайно закрыл терминал. По этой причине не было процессов, использующих apt, но система все равно выдавала мне ошибку.

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

Чтобы решить эту проблему, все, что вам нужно сделать, это удалить файлы блокировки. Но, прежде чем вы это сделаете, было бы неплохо остановить любой процесс, использующий файлы блокировки.

Используйте команду lsof, чтобы получить идентификатор процесса, использующего файлы блокировки. Проверьте ошибку и посмотрите, на какие файлы блокировки она жалуется, и получите идентификатор процессов, содержащих эти файлы блокировки.

Последовательно запустите эти команды:

sudo lsof /var/lib/dpkg/lock 
sudo lsof /var/lib/apt/lists/lock 
sudo lsof /var/cache/apt/archives/lock 

Возможно, команды ничего не будут возвращают или вернут только одно число. Но, если они возвращают хотя бы одно число, используйте его, чтобы завершить такие процессы (замените <process_id> числами, полученными из приведенных выше команд):

sudo kill -9 < process_id > 

Теперь вы можете безопасно удалить файлы блокировки, используя следующие команды:

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

После этого переконфигурируйте пакеты:

sudo dpkg --configure -a

Теперь, если вы запустите команду sudo apt update, все должно работать как надо.

Устранение неполадки: «Unable to acquire the dpkg frontend lock»

Если вы видите такую ​​ошибку:

abhishek@nuc:~$ sudo apt install grub-customizer 
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource
temporarily unavailable) 
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend),
is another process using it?

Вы должны выяснить, какой процесс удерживает интерфейс блокировки, используя команду lsof, как обсуждалось в предыдущих разделах:

sudo lsof /var/lib/dpkg/lock-frontend

В моем случае команда вернула:

abhishek@nuc:~$ sudo lsof /var/lib/dpkg/lock-frontend 
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system 
/run/user/1000/gvfs 
          Output information may be incomplete. 
COMMAND   PID  USER FD  TYPE DEVICE  SIZE/OFF NODE NAME 
unattende 2823 root 5uW REG  8,2 0   145221 
/var/lib/dpkg/lock-frontend

Если вы видите значение «unattende» в столбце COMMAND, это значит, что выполняются автоматические обновления безопасности. Вам следует дождаться завершения процессов. По сути, это то, что я описывал в методе 0, но вы могли его пропустить.

Если значение COMMAND какое-то другое, вы можете убить процесс, а затем удалить файл блокировки.  Идентификатор процесса вы найдете в столбце PID. Используйте этот PID, чтобы убить процесс. После этого удалите файл блокировки и запустите команду обновления, чтобы проверить, исправили ли вы проблему.

sudo kill -9 PID 
sudo rm /var/lib/dpkg/lock-frontend 
sudo apt update 

Устранение неполадки: «dpkg: error: dpkg frontend is locked by another process»

Если вы встретите ошибку «интерфейс dpkg заблокирован другим процессом» в процессе пошагового выполнения метода 2, вам понадобится выполнить еще одно действие.

Во-первых, узнайте идентификатор процесса, хранящего файл блокировки.

sudo lsof /var/lib/dpkg/lock-frontend

Эта команда предоставит вам подробную информацию о процессах и программах, использующих файлы блокировки. Используйте идентификатор процесса, чтобы убить эту программу:

sudo kill -9 PID

Теперь вы можете снять блокировку и перенастроить dpkg:

sudo rm /var/lib/dpkg/lock-frontend 
sudo dpkg --configure -a

Помогла ли вам статья? Какой из методов помог в вашем случае?

Надеюсь, этот небольшой пост помог вам исправить ошибки типа «Не удалось получить lock / var / lib / dpkg / lock». Если да – обязательно поделитесь в комментах, какой метод помог именно вам.

Если ни один из перечисленных способов так и не помог вам справиться с проблемой, опять же – дайте знать. Я постараюсь вам помочь.

Любые другие предложения также приветствуются в комментариях.

In this article we are going to learn ‘Fix dpkg: error: dpkg frontend lock is locked by another process’. Whenever we are installing software, an error occurs with ‘dpkg: error: dpkg frontend lock is locked by another process’. dpkg is a free operating system software at the bottom of the package management system in Debian and its numerous derivatives. dpkg is used to install, remove, and supply information about .deb packages.

The dpkg (Debian package) itself is a low-level tool. APT (Advanced Package Tool), a high-level tool, is more commonly used than dpkg because it can bring packages to remote locations and deal with complex package relationships such as dependency fixes. Frontends like Aptitude (NCRS) and Synaptic (GTK +) are used for their friendly interface for APT.

The Debian package “dpkg” provides the dpkg program, as well as many other programs required for the run-time operation of the packaging system, including DPKG-DEB, DPKG-Split, DPKG-Query, DPKG-Statoveride, DPKG-Diverse, and DPKG. Trigger.

This includes programs like Update-Option and Start-Stop-Demon. The install-info was used to include the program as well but was later removed because it has now been developed and distributed separately. The Debian package “DPKG-Dev” contains the numerous build tools described below.

Follow the below steps to Fix DPKG: Error: DPKG Frontend Lock is Locked By Another Process

If you find the “dpkg: error: dpkg frontend lock is locked by another process” error while running the procedure described above, you need to do an extra step. First, find the ID of the process that contains the lock file. You can do so using below command.

[email protected]:~$ lsof /var/lib/dpkg/lock

Then make sure the process is not running.

itsm[email protected]:~$ ps cax | grep PID
PID TTY STAT TIME COMMAND

The above command will give you the process PID using lock files. Use this PID to kill the process.

[email protected]:~$ kill PID
bash: kill: PID: arguments must be process or job IDs

[email protected]:~$ kill -9 PID
bash: kill: PID: arguments must be process or job IDs

Also Read – A Guide to Kill, Pkill and Killall Commands to Stop the Process in Linux(Kill Process Linux)

That’s all, In this article, we have explained the Fix dpkg: error: dpkg frontend lock is locked by another process. I hope you enjoy this article. If you like this article, then just share it. If you have any questions about this article, please comment.

ITSmarttricks Team

This is Mangesh Dhulap the Founder and Editor of IT SMART TRICKS have 6+ years of Industrial Experience. We expect from our visitors to like, share, and comment on our posts.

Возможно, вам также будет интересно:

  • Dpf ошибка митсубиси паджеро спорт
  • Dpc watchdog violation ошибка синий экран
  • Dpc watchdog violation как исправить эту ошибку
  • Dozor видеорегистратор ошибка авторизации
  • Download mode asmodus ошибка

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии