Исправлено: не удалось открыть файл блокировки / var / lib / dpkg / lock



Попробуйте наш инструмент устранения неполадок

Получение сообщения об ошибке не удалось открыть файл блокировки / var / lib / dpkg / lock может сбивать с толку, потому что сразу после этого может возникнуть вопрос, не являетесь ли вы root, даже если вы выполняли команду обновления с префиксом sudo. Эта команда ошибки будет отображаться почти во всем, что использует диспетчер пакетов apt-get. Независимо от того, обновляете ли вы настольный компьютер или ноутбук с одной из различных версий Ubuntu или Raspberry Pi с Raspbian Debian spin, вы можете обнаружить, что это может быть проблемой на любой из этих платформ.



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



Метод 1: обеспечение доступа sudo ко всем частям команды

Если вы запустите sudo apt-get update && apt-get upgrade, вы можете получить эту ошибку, поскольку второй процесс не имеет необходимых полномочий для доступа к файлу / var / lib / dpkg / lock.



Попробуйте вместо этого запустить sudo apt-get update && sudo apt-get upgrade чтобы увидеть, имеет ли это значение. Если это так, значит, ваша проблема уже решена, и это произошло просто потому, что вы не предоставили второму процессу достаточные разрешения для доступа к файлу. Имейте в виду, что эта команда обновит, а затем обновит все ваши пакеты, поэтому она может предложить вам утвердить ее, а запуск может занять некоторое время.

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



Метод 2: удаление файла / var / lib / dpkg / lock

Тем, кто использует curl, wget или другую команду для дискретной загрузки файла, может также потребоваться предварять эту команду sudo, если они работают с Raspbian, поскольку в некоторых случаях это заменяет apt-get. Тем, кто работает с чистым Debian, Xubuntu, Lubuntu, Linux Mint и другими подобными приложениями, ориентированными на настольные ПК / ноутбуки, не нужно беспокоиться об этом, но стоит попробовать еще раз.

Если это по-прежнему не помогло, возможно, вам придется проверить, что у вас нет другой программы, пытающейся получить доступ к файлу, пока вы выполняете обновление. Попробуйте использовать sudo lsof / var / lib / dpkg / замок чтобы узнать, запущены ли какие-либо другие процессы, в которых он открыт. Если у вас он где-то открылся, вы можете просто закрыть приложение.

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

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

Иногда помогает перезагрузка, но если вы постоянно находитесь на сервере или на устройстве Raspbian, это может быть нецелесообразным вариантом. Попробуйте бежать sudo rm / var / lib / dpkg / lock && sudo rm / var / lib / apt / lists / lock , который освободит определенные файлы, которые apt просматривает, когда вы его запускаете. Обязательно будьте осторожны с именами этих файлов, поскольку запуск rm от имени root разрушителен.

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

3 минуты на чтение