четверг, 12 марта 2020 г.

Ошибка при установки программы из терминала в Linux

При установки какой нибудь программы через терминал таким образом:

sudo apt-get install p7zip-full

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

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5589 (synaptic) - open (11: Resource temporarily unavailable)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?




Эта ошибка появляется например когда запущен менеджер пакетов Synaptic и вы не можете одновременно пользоваться терминалом и synaptic для установки программ или установка какой то прораммы завершилась неудачно.

Проверим не использует ли какой нибудь другой процесс команду apt.
Введите в терминале:

ps aux | grep -i apt

Вывод может быть такой:

lubuntu   5588  0.0  0.0   2600   788 ?        S    12:54   0:00 /bin/sh /usr/bin/synaptic-pkexec
root      5589  0.1  3.6 444068 145400 ?       Sl   12:54   0:03 /usr/sbin/synaptic
lubuntu   6081  0.0  0.0  19240   916 pts/0    S+   13:24   0:00 grep --color=auto -i apt

Ну тут все понятно запущен synaptic с идентификатором (PID) 5589 и его надо закрыть или завершить процесс с помощью команды  sudo kill -9. У вас может быть вывод команды совсем другим.

sudo kill -9 5589

После выполнения команды процесс 5589 должен завершится. Или еще способ использовать команду killall. Это завершит все сразу программы которые используют apt и apt-get.

sudo killall apt apt-get

Второй способ используйте команду lsof чтобы получить идентификатор процесса содержащего файлы блокировки.

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
synaptic 6446 root   11uW  REG   8,37        0 3539021 /var/lib/dpkg/lock-frontend

Используйте идентификатор процесса чтобы завершить эту программу:

sudo kill -9 6446

Удалите файлы блокировки и выполните команду update.

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

sudo apt update