Ошибка не удалось получить файл блокировки

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

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. Как правило, эти способы помогают. Если у вас остались какие-либо вопросы, оставляйте их в комментариях.

Я предполагаю, что вы новичок в Linux.

Вы следуете некоторому руководству в Интернете, в котором вам предлагается установить определенную программу или выполнить какую-либо команду. Наверное, это как-то связано с сервером.

Но когда вы запускаете команду, вы сталкиваетесь с такой ошибкой:

E: не удалось открыть файл блокировки / var / lib / dpkg / lock-frontend — открыть (13: в доступе отказано)
E: Невозможно получить блокировку внешнего интерфейса dpkg (/ var / lib / dpkg / lock-frontend), вы — root?

Похожая ошибка такая:

dpkg: ошибка: требуется доступ для чтения / записи к каталогу базы данных dpkg / var / lib / dpkg
E: подпроцесс dpkg –set-selections вернул код ошибки (2)
E: Не удалось выполнить dpkg. Вы root?

Обе ошибки задают вам один и тот же вопрос: вы root? И это ответ на эту проблему. Станьте root.

Станьте root, чтобы избежать этой ошибки

Как ты стать root в Ubuntu или Debian? Вы используете команду sudo.

Да это оно. Какую бы команду вы ни выполняли, просто добавьте перед ней sudo.

sudo your_command
Запуск команды с помощью sudo

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

С вашей системой все в порядке. В большинстве систем Linux при вводе пароля не отображаются обычные звездочки или что-то в этом роде как «средство безопасности».

Просто введите свой пароль и нажмите после него Enter. Если пароль был введен правильно, теперь вы сможете запустить команду.

Вы даже можете использовать это удобное Уловка с командной строкой Linux чтобы запустить предыдущую команду с помощью sudo:

sudo !!

Это было просто и работает немедленно, если у вас нет доступа к sudo. Тогда вы увидите другую ошибку.

Видите ошибку «Пользователь не в файле sudoer»?

Некоторые пользователи не могут запускать команды с помощью sudo

Когда ты установить Ubuntu, вам необходимо создать учетную запись пользователя. Этому пользователю автоматически предоставляются полномочия sudo для запуска команд от имени пользователя root, когда это необходимо.

Это происходит на рабочем столе Ubuntu, а не на серверах. В большинстве серверных дистрибутивов будет отдельная учетная запись root. Если вы создаете обычную учетную запись отдельно, вам нужно будет добавить пользователя в sudoer, чтобы этот обычный пользователь мог использовать sudo.

На скриншоте выше я создал этого дополнительного пользователя, но не добавил его в группу sudo. Это означает, что пользователь «prakash» здесь не имеет прав на использование команды sudo, и, следовательно, система жалуется, что «prakash отсутствует в файле sudoers».

Где сообщается об инциденте?

Неправильная попытка sudo добавляется в системные журналы. Он регистрирует имя пользователя, номер виртуального терминала, местоположение, откуда была запущена команда, и какая команда была запущена.

Неправильные попытки sudo регистрируются в системе

Расположение этих журналов зависит от рассылки.

Обычно вы можете найти его в журналах journalctl или в файле /var/log/auth.log в Ubuntu, в файле /var/log/audit/audit.log в Fedora.

Что делать, если пользователя нет в списке sudoer?

Что вы можете сделать, если вы не можете использовать sudo с текущей учетной записью пользователя? Первый, проверьте, есть ли у пользователя права sudo или нет. Если нет, то вот несколько вариантов ты:

  • Войдите в систему как root или переключитесь на root (если у вас есть пароль root).
  • Добавить пользователя в список sudoer (если у вас есть права администратора / sudo от другой учетной записи пользователя).
  • Если вы работаете в многопользовательской системе Linux и у вас нет доступа root или sudo, попросите администратора системы либо предоставить вашему пользователю доступ sudo, либо установить приложение, которое вы хотите установить.

Это помогло?

Sudo — это очень всеобъемлющий механизм безопасности, и это гораздо больше, чем просто разрешение обычному пользователю получить root-доступ. Это помогает при аудите системы узнать, какой пользователь какую команду выполнил с помощью sudo. Его также можно настроить так, чтобы определенный пользователь мог запускать только определенные команды с помощью sudo.

Вы не увидите такой детальной конфигурации sudo на настольном Linux, где она предварительно настроена, чтобы позволить любому пользователю в группе sudo запускать любую команду от имени пользователя root с помощью sudo. Подробнее о sudo в другой статье.

Я надеюсь, что, решая эту классическую задачу для начинающих, вы получите некоторое представление о команде sudo. Дайте мне знать, если у вас есть дополнительные вопросы по этой теме в разделе комментариев.

Как устранить ошибку при установке программы?

Добрый день! Второй день изучаю Ubuntu, поставил разные программы, но при попытке установить git получаю ошибку

~$ apt-get install git
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock - open (13: Отказано в доступе)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); у вас есть права суперпользователя?

Подскажите пожалуйста, как устранить эту ошибку?


  • Вопрос задан

    более трёх лет назад

  • 14543 просмотра

Попробуйте так
sudo apt-get install git
или

su-
apt-get install git

Пригласить эксперта

На будущее:
Некоторые команды требуют root привилегий. В основном это команды которые влияют на саму систему:
установка пакетов, правка системных конфигов, монтирование и т.д.
Привилегии для этих команд поднимаются командой sudo.


  • Показать ещё
    Загружается…

13 июн. 2023, в 23:37

1000 руб./в час

13 июн. 2023, в 23:22

15000 руб./за проект

13 июн. 2023, в 23:17

20000 руб./за проект

Минуточку внимания

Сегодня рассмотри еще одну очень часто встречающеюся ошибку которая может появиться во время установки нового пакета в Astra Linux. Это даже не ошибка а предупреждение о том что необходимый ресурс (каталог) заблокирован, т.е. используется либо другим пользователем либо приложением. Решений тут два, самый простой способ это перезагрузка системы, но это не всегда удобно, да и в принципе не совсем правильно и второй вариант узнать какой процесс в данный момент его использует и завершить его. Делается все это очень просто, выполнением двух команд.

Astra не удалось выполнить блокировку управляющего каталога /var/lib/dpkg/

И так во время установки нового пакета (программы) в Astra Linux, с помощью команды.

sudo apt install название пакета

Система выдает следующие сообщение.

Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)

Не удалось выполнить блокировку управляемого каталога (/var/lib/dpkg/); он уже используется другим процессом.

Astra Не удалось получить доступ

В первой строке мы видим, что уже есть работающий экземпляр программы 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. Как правило, эти способы помогают. Если у вас остались какие-либо вопросы, оставляйте их в комментариях.

Я предполагаю, что вы новичок в Linux.

Вы следуете некоторому руководству в Интернете, в котором вам предлагается установить определенную программу или выполнить какую-либо команду. Наверное, это как-то связано с сервером.

Но когда вы запускаете команду, вы сталкиваетесь с такой ошибкой:

E: не удалось открыть файл блокировки / var / lib / dpkg / lock-frontend — открыть (13: в доступе отказано)
E: Невозможно получить блокировку внешнего интерфейса dpkg (/ var / lib / dpkg / lock-frontend), вы — root?

Похожая ошибка такая:

dpkg: ошибка: требуется доступ для чтения / записи к каталогу базы данных dpkg / var / lib / dpkg
E: подпроцесс dpkg –set-selections вернул код ошибки (2)
E: Не удалось выполнить dpkg. Вы root?

Обе ошибки задают вам один и тот же вопрос: вы root? И это ответ на эту проблему. Станьте root.

Станьте root, чтобы избежать этой ошибки

Как ты стать root в Ubuntu или Debian? Вы используете команду sudo.

Да это оно. Какую бы команду вы ни выполняли, просто добавьте перед ней sudo.

sudo your_command
Запуск команды с помощью sudo

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

С вашей системой все в порядке. В большинстве систем Linux при вводе пароля не отображаются обычные звездочки или что-то в этом роде как «средство безопасности».

Просто введите свой пароль и нажмите после него Enter. Если пароль был введен правильно, теперь вы сможете запустить команду.

Вы даже можете использовать это удобное Уловка с командной строкой Linux чтобы запустить предыдущую команду с помощью sudo:

sudo !!

Это было просто и работает немедленно, если у вас нет доступа к sudo. Тогда вы увидите другую ошибку.

Видите ошибку «Пользователь не в файле sudoer»?

Некоторые пользователи не могут запускать команды с помощью sudo

Когда ты установить Ubuntu, вам необходимо создать учетную запись пользователя. Этому пользователю автоматически предоставляются полномочия sudo для запуска команд от имени пользователя root, когда это необходимо.

Это происходит на рабочем столе Ubuntu, а не на серверах. В большинстве серверных дистрибутивов будет отдельная учетная запись root. Если вы создаете обычную учетную запись отдельно, вам нужно будет добавить пользователя в sudoer, чтобы этот обычный пользователь мог использовать sudo.

На скриншоте выше я создал этого дополнительного пользователя, но не добавил его в группу sudo. Это означает, что пользователь «prakash» здесь не имеет прав на использование команды sudo, и, следовательно, система жалуется, что «prakash отсутствует в файле sudoers».

Где сообщается об инциденте?

Неправильная попытка sudo добавляется в системные журналы. Он регистрирует имя пользователя, номер виртуального терминала, местоположение, откуда была запущена команда, и какая команда была запущена.

Неправильные попытки sudo регистрируются в системе

Расположение этих журналов зависит от рассылки.

Обычно вы можете найти его в журналах journalctl или в файле /var/log/auth.log в Ubuntu, в файле /var/log/audit/audit.log в Fedora.

Что делать, если пользователя нет в списке sudoer?

Что вы можете сделать, если вы не можете использовать sudo с текущей учетной записью пользователя? Первый, проверьте, есть ли у пользователя права sudo или нет. Если нет, то вот несколько вариантов ты:

  • Войдите в систему как root или переключитесь на root (если у вас есть пароль root).
  • Добавить пользователя в список sudoer (если у вас есть права администратора / sudo от другой учетной записи пользователя).
  • Если вы работаете в многопользовательской системе Linux и у вас нет доступа root или sudo, попросите администратора системы либо предоставить вашему пользователю доступ sudo, либо установить приложение, которое вы хотите установить.

Это помогло?

Sudo — это очень всеобъемлющий механизм безопасности, и это гораздо больше, чем просто разрешение обычному пользователю получить root-доступ. Это помогает при аудите системы узнать, какой пользователь какую команду выполнил с помощью sudo. Его также можно настроить так, чтобы определенный пользователь мог запускать только определенные команды с помощью sudo.

Вы не увидите такой детальной конфигурации sudo на настольном Linux, где она предварительно настроена, чтобы позволить любому пользователю в группе sudo запускать любую команду от имени пользователя root с помощью sudo. Подробнее о sudo в другой статье.

Я надеюсь, что, решая эту классическую задачу для начинающих, вы получите некоторое представление о команде sudo. Дайте мне знать, если у вас есть дополнительные вопросы по этой теме в разделе комментариев.

Как устранить ошибку при установке программы?

Добрый день! Второй день изучаю Ubuntu, поставил разные программы, но при попытке установить git получаю ошибку

~$ apt-get install git
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock - open (13: Отказано в доступе)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); у вас есть права суперпользователя?

Подскажите пожалуйста, как устранить эту ошибку?


  • Вопрос задан

    более трёх лет назад

  • 14543 просмотра

Попробуйте так
sudo apt-get install git
или

su-
apt-get install git

Пригласить эксперта

На будущее:
Некоторые команды требуют root привилегий. В основном это команды которые влияют на саму систему:
установка пакетов, правка системных конфигов, монтирование и т.д.
Привилегии для этих команд поднимаются командой sudo.


  • Показать ещё
    Загружается…

13 июн. 2023, в 23:37

1000 руб./в час

13 июн. 2023, в 23:22

15000 руб./за проект

13 июн. 2023, в 23:17

20000 руб./за проект

Минуточку внимания

Сегодня рассмотри еще одну очень часто встречающеюся ошибку которая может появиться во время установки нового пакета в Astra Linux. Это даже не ошибка а предупреждение о том что необходимый ресурс (каталог) заблокирован, т.е. используется либо другим пользователем либо приложением. Решений тут два, самый простой способ это перезагрузка системы, но это не всегда удобно, да и в принципе не совсем правильно и второй вариант узнать какой процесс в данный момент его использует и завершить его. Делается все это очень просто, выполнением двух команд.

Astra не удалось выполнить блокировку управляющего каталога /var/lib/dpkg/

И так во время установки нового пакета (программы) в Astra Linux, с помощью команды.

sudo apt install название пакета

Система выдает следующие сообщение.

Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)

Не удалось выполнить блокировку управляемого каталога (/var/lib/dpkg/); он уже используется другим процессом.

Для того чтобы узнать какой пользователь и процесс блокирует установку нового пакета, необходимо ввести команду.

sudo fuser -v /var/lib/dpkg/lock

В результате видим что его использует пользователь «root» и процесс «synaptic». В моем случае просто открыть «менеджер пакетов Synaptic». Для возможности установки достаточно его закрыть.

Astra Linux "Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock"

Если Вы не знаете что за это за процесс, то его можно завершить командой.

sudo fuser -vki /var/lib/dpkg/lock

Подтверждаем завершение данного процесса.

Astra  не удалось выполнить блокировку управляющего каталога /var/lib/dpkg/

После этого можно пробовать устанавливать пакеты.

Понравилась статья? Поделить с друзьями:
  • Ошибка не удалось подключиться к миру майнкрафт пе
  • Ошибка не удалось получить содержимое файла
  • Ошибка не удалось подключиться к контроллеру домена active directory
  • Ошибка не удалось получить информацию о задержке dota 2
  • Ошибка не удалось подключиться к информационной базе