Ошибка Сould not open lock file /var/lib/dpkg/lock в Кали Линукс.

are you root

Ошибка Сould not open lock file в Кали Линукс не даёт работать с обновлением из терминала.

Работа с ошибкой could not open lock file /var/lib/dpkg/lock некоторых пользователей вводит в смущение прежде всего фактом появления в учётной записи root. Наиболее вероятные симптомы – ошибка в терминале после попытки обновиться (apt-get update). В том числе с префиксом sudo. При этом ошибка появляется повсюду, где хоть что-то завязано с менеджером apt-get. На Ubuntu ли, в Raspberry Pi или в Кали Линукс. Однако часто решение лежит на поверхности. Наиболее типичное проявление ошибки – попытке ввести двойную в одной строчке команду на обновление с последующей попыткой обновления установить. Многие эту команду запускают уже в начале сеанса с терминала в виде:

sudo apt-get update && apt-get upgrade -y

Обратите внимание, что вторая часть команды правами на действие не обладает. И авторизованных прав на файл /var/lib/dpkg/lock в терминале не выдано. Так что логичным бы было написание команды в виде

sudo apt-get update && sudo apt-get upgrade -y

Или же по отдельности в два захода с вводом после первой команды пароля к root-учётке:

are you root fix

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

Что-то уже обновляется…

Есть смысл проверить, не устанавливаются ли какие-то обновления прямо сейчас. Или какой процесс тормозит работу с искомым файлом. В терминале набираем

ps aux | grep -i apt

А затем тут же:

sudo kill ID_номер_процесса

Проверьте предыдущей командой не вернулся ли процесс. Если ID не меняется, затормозите все процессы, связанные с обновлением

sudo killall apt apt-get

Сould not open lock file /var/”путь”/lock: удаляйте файлы

Для применяющих curl, wget и другие команды при дискретном скачивании файлов им всем (командам) также должен предварять префикс sudo.  В любом случае, если добавление префикса работы от root не помогает, вы всегда можете взглянуть на процессы, которые, вероятно, вмешиваются в работу команд обновления:

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

Вполне возможно, что терминал ничего не вернёт. Или вернёт какое-то единичное число из процессов. Такая проблема возникает, когда пользователь во время работы apt просто случайно закрывает терминал. Как итог – ни один из процессов от имени apt не запущен, а ошибка Сould not open lock file вылезает. В общем, просто вслепую удаляем файлы. Это безопасно:

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

Должно заработать. Всем успехов.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *