- Как правильно и навсегда исправить ошибку «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)»
- Ошибки «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)» и «E: Невозможно заблокировать каталог /var/lib/apt/lists/»
- Правильный способ исправить ошибку E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)
- Как отключить автоматический запуск службы apt
- Отключение unattended-upgrades
- Отключение автоматической загрузки обновлений программ в GNOME 3
- Как обновить Linux в командной строке
- Аварийное завершение работы во время обновления системы или установки программ
- Заключение
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Решение проблемы «E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock» в Kali Linux
- Аварийное завершение работы во время обновления системы или установки программ
- compizomania
- Страницы
- 18 декабря 2012
- Как избавиться от сообщения «Не удалось получить доступ к файлу блокировки» в Ubuntu/Linux Mint
- Linux не удалось получить файл блокировки
Как правильно и навсегда исправить ошибку «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)»
Ошибки «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)» и «E: Невозможно заблокировать каталог /var/lib/apt/lists/»
Пакеты (программы) в Linux можно устанавливать и обновлять с использованием графического интерфейса, либо с помощью утилит командной строки.
Иногда при использовании утилитой apt (консольного менеджера пакетов), например, при обновлении информации о пакетах, либо про попытке установить новый пакет, возникает примерно следующая ошибка:
Ошибка довольно раздражающая, она может возникнуть сразу после загрузки системы или в любое произвольное время.
На некоторых сайтах советуют удалить файлы блокировки, например, /var/lib/apt/lists/lock, но не торопитесь это делать! Это может привести к необходимости затем исправлять ошибки с пакетами программ. Чтобы разобраться, из-за чего это происходит, а также правильно исправить эту ошибку, давайте изучим механизм её возникновения.
Её причиной является то, что одновременно запущено два экземпляра apt. Дело в том, что когда программа apt начинает свою работу, она создаёт пару файлов блокировки (один из них /var/lib/apt/lists/lock). При каждом своём запуске apt обращается к этим файлам – и если они уже присутствуют, значит ранее был запущен другой экземпляр apt. Чтобы не внести беспорядок в пакетах и не навредить системе, второй запущенный экземпляр apt останавливает свою работу и выводит показанное выше сообщение об ошибке.
Вряд ли вы сами запустили в двух разных окнах программу apt. Дело в том, что у apt имеется свой демон (фоновый процесс), который в некоторых дистрибутивах установлен на автоматическое выполнение. Т.е. чаще всего вы сталкиваетесь с этой ошибкой в тот момент, когда apt выполняет свои фоновые процессы. Это не является большой редкостью, поскольку работа демона apt может быть продолжительной, например, когда нужно скачать большое количество обновлений, а Интернет-подключение медленное.
Если в этой ситуации удалить файлы-блокировщики (/var/lib/apt/lists/lock), как это иногда советуют, то в результате фоновый процесс apt преждевременно завершит свою работу, либо вы запустите второй экземпляр apt – оба эти варианта приведут к проблемам с пакетами, и, вероятнее всего, при последующей попытке использовать apt система предложит вам запустить программу с ключом —f:
Правильный способ исправить ошибку E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Resource temporarily unavailable)
Итак, первый способ исправить ошибку очевиден – не нужно ничего делать, просто дождитесь, когда фоновый процесс apt сам завершит свою работу. В результате он сам скачает/обновит новые пакеты.
Как отключить автоматический запуск службы apt
Тем не менее, ситуацию с apt многие пользователи, и я в том числе, могут найти раздражающей: мы не можем воспользоваться apt, в том числе установить нужный пакет в тот момент, когда нам это нужно и, возможно, нет времени дожидаться, пока apt завершит свою работу.
Чтобы увидеть, какие службы apt присутствуют в системе, выполните команду:
Вероятно, вы увидите там такие службы как:
- apt-daily.timer – ежедневный таймер службы для скачивания новых пакетов
- apt-daily-upgrade.timer – ежедневный таймер службы для обновления и очистки пакетов
- apt-daily.service – непосредственно запускает скачивание новых пакетов (команда /usr/lib/apt/apt.systemd.daily update), вызывается таймером
- apt-daily-upgrade.service – непосредственно запускает установку новых пакетов и очистку кэша (команда /usr/lib/apt/apt.systemd.daily install), вызывается таймером
Следующая команда выведет только список служб apt, которые добавлены в автоматическую загрузку:
Скорее всего, это службы apt-daily-upgrade.timer и apt-daily.timer, чтобы отключить их автоматический запуск при старте системы, выполните команды:
Отключение unattended-upgrades
Кроме автоматического запуска apt, в системах на базе Debian имеются включенные по умолчанию unattended-upgrades – те же самые автоматические обновления.
Из описания данного пакета непонятно, автоматически устанавливаются только критические обновления, связанные с безопасностью, или все.
Для изменения этих настроек можно отредактировать файл /etc/apt/apt.conf.d/20auto-upgrades, в нём имеются следующие строки:
Первая отвечает за обновление списка пакетов, а вторая – за обновления самих пакетов в системе. Этот файл можно изменить вручную (чтобы остановить автоматическое обновление, вместо 1 впишите 0) либо запустить конфигуратор:
Переключения между кнопками, используйте клавишу , для выбора используйте .
Что характерно, в Kali Linux по умолчанию отключены автоматические службы apt как и вообще все сетевые службы, которые так или иначе используют доступ в сеть, но почему-то включены unattended-upgrades – либо авторы известного дистрибутива забыли о них, либо считают эти обновления важными.
Отключение автоматической загрузки обновлений программ в GNOME 3
Но даже это ещё не всё! По-прежнему ваш компьютер может автоматически скачивать обновления. Если у вас GNOME 3, то центр программного обеспечения GNOME скорее всего настроен на автоматическую загрузку пакетов. После загрузки в области уведомлений будет показано сообщение, что имеются обновления системы. Эта настройка по умолчанию включена даже в Kali Linux. Чтобы получить текущий статус этой настройки выполните команду:
Если там будет true, значит автоматическая загрузка обновлений включена.
Чтобы её отключить выполните:
Как обновить Linux в командной строке
С одной стороны, отключение автоматических обновлений и скачивание новых файлов пакетов навсегда избавит вас от ошибки «E: Невозможно заблокировать каталог /var/lib/apt/lists/» и других подобных, но при этом вам нужно будет самостоятельно выполнять обновление и очистку пакетов.
Для полного обновления системы выполняйте:
А для очистки пакетов используются команды:
Аварийное завершение работы во время обновления системы или установки программ
Если рассматриваемая ошибка была вызвана тем, что система была выключена во время обновления, то для её исправления нужно выполнить:
Скорее всего, чтобы вновь появилась возможность использовать apt понадобиться выполнить следующую команду, для исправления проблем:
Заключение
Если вы постоянно используете apt в командной строке, то вряд ли нужна автоматическая служба apt. Если же вы выполняете какую-то инструкцию и случайно столкнулись с описанной ошибкой, то, наверное, правильнее не удалять демон apt, а просто дождаться когда он корректно завершит свою работу.
Источник
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Решение проблемы «E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock» в Kali Linux
Иногда при использовании менеджера пакетов apt для установки программы или обновления пакетов, возникает ошибка:
В Интернете уже достаточно часто обсуждалась эта ошибка, но я решил вернуться к её решению, поскольку обычно дают неправильный совет, что нужно удалить /var/lib/dpkg/lock. Если не было аварийного завершения работы менеджера пакетов apt, то не надо удалять файлы-блокировщики. Это приведёт к тому, что apt при последующем использовании будет сообщать об ошибке и придётся запускать команду для наведения порядка в пакетах.
Причина ошибки в том, что apt уже работает в фоне — скорее всего, просто скачивает пакеты обновлений, поскольку по умолчанию apt не устанавливает обновления самостоятельно.
Для других дистрибутивов это вызывает временное неудобство, поскольку нужно подождать, когда apt завершит свои фоновые задачи. Если нужно скачать много пакетов, а Интернет-соединение медленное, то придётся довольно долго ждать. Для Kali Linux, специализированного дистрибутива, такое поведение может для некоторых быть вообще неприемлемым. Кстати, авторы Kali Linux утверждают, что по умолчанию сетевые службы отключены. Тем не менее apt всё равно может автоматически скачивать обновления в фоне, когда вы об этом не подозреваете.
Дело в том, что, например, окружение рабочего стола (GNOME) могут запускать apt в фоне. Я, вроде бы, нашёл все настройки, после отключения которых apt уже никогда не будет ничего загружать без вашего ведома. Если после их применения у вас всё равно возникла ошибка «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)», пишите в комментариях — будем копать ещё глубже.
Итак, начинаем с самого очевидного, отключаем скачивание обновлений по расписанию. Проверить, включены ли какие-либо автоматические обновления, можно командой:
Для их отключения:
Теперь отключаем Unattended (самостоятельные) обновления, для этого откройте файл файл /etc/apt/apt.conf.d/20auto-upgrades
в нём имеются следующие строки:
Первая отвечает за обновление списка пакетов, а вторая – за обновления самих пакетов в системе. Вместо единиц впишете нули.
Теперь проверьте, настроен ли GNOME делать автоматические обновления:
Если будет выведено true, значит да, графическая оболочка также в фоне скачивает обновления.
Чтобы это отключить выполните:
Аварийное завершение работы во время обновления системы или установки программ
Если рассматриваемая ошибка была вызвана тем, что система была выключена во время обновления, то для её исправления нужно выполнить:
Скорее всего, чтобы вновь появилась возможность использовать apt понадобиться выполнить следующую команду, для исправления проблем:
Источник
compizomania
Азбука в Linux для начинающих и не только. Я знаю только то, что ничего не знаю, но другие не знают и этого. Сократ
Страницы
18 декабря 2012
Как избавиться от сообщения «Не удалось получить доступ к файлу блокировки» в Ubuntu/Linux Mint
$ sudo apt-get update
E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Ресурс временно недоступен)
E: Невозможно заблокировать каталог со списками пакетов
Подобное сообщение появляется иногда в терминале после выполнения команды apt-get. Это обозначает что где то есть процесс который закрыл базу apt для использования. Хотя, казалось бы, ни один процесс не запущен.
Как правило перезагрузка компьютера или системы помогает избавится от данного сбоя. Но мы постараемся справиться с этой проблемой без перезагрузки. Для этого выполните следующие действия:
Посмотрим запущенные процессы занявшие базу apt, выполнив команду в терминале:
sudo pgrep apt-get
Команда pgrep ищет запущенные процессы по шаблону имени. В данном случае она ищет запущенные процессы, в имени которых есть apt-get. Если команда ответит числом (одним или несколькими) это значит, что есть процессы с именем в котором есть apt-get.
Если такие процессы есть, их можно убить командой pkill:
sudo pkill apt-get
После выполнения данной команды, выполните команду на обновление, чтобы убедиться что база apt разблокирована:
sudo apt-get update
Сообщение «Не удалось получить доступ к файлу блокировки» не должно появиться и обновление пройдёт успешно.
Источник
Linux не удалось получить файл блокировки
Довольно часто пользователи сталкиваются с ошибкой «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock». В этой короткой статье я расскажу как быстро и легко починить эту ошибку без перезагрузки системы.
Коротко об ошибке и почему она возникает.
Во время установки какого-то приложения, вы можете натолкнуться на ошибки следующего содержания в терминале:
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?
Либо при обновлении системы можно на толкнуться на ошибку следующего толка:
E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock — open (11: Ресурс временно недоступен)
E: Невозможно заблокировать каталог /var/lib/apt/lists/
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock — open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?
Такое происходит в момент установки (обновлении) программ / пакетов в разных приложениях одновременно.
К примеру, у вас открыт synaptic, Центр приложений Ubuntu, Gdebi, терминал и тд. Также, вы могли запустить установку приложений в нескольких вкладках терминала одновременно. В общем, в каком-то из приложений параллельно идет установка и ожидается ваше решение.
В этом случае, достаточно просто закрыть такое параллельное приложение, которое устанавливает новую программу (обновляет пакеты и тд). И ошибка пройдет.
Но данная ошибка может случиться, если установка приложения остановилась аварийно.
В этом случае, у вас dpkg висит в фоне и созданы lock файлы.
Можно сделать перезагрузку системы и ошибка пройдет, но это не всегда удобно делать (по ряду причин).
Давайте решим эту проблему с помощью терминальной утилиты fuser.
Утилита fuser показывает какие процессы используют файл (подробнее её разберем в одной из будущих статей серии про терминал).
Сейчас же скажу, что флаг -v показывает какие процессы используют переданный адрес на файл. Посмотрим в нашем случае:
По выводу в терминале видно, что dpkg использует этот файл.
Флаг -k аналогичен команде kill в терминале. То есть, данной командой мы удалим все процессы, которые используют данный файл блокировки.
И укажем флаг -i, который означает интерактивность, то есть будет показан диалог, завершить ли процесс.
В терминале нужно нажать y, чтобы подтвердить действия для каждого процесса:
Теперь нужно выполнить следующую команду, которая переконфигурирует пакетный менеджер:
Если после этих действий ошибка осталась, то удалите ещё файл блокировки:
После чего снова выполняем:
Вместо /var/lib/dpkg/lock вы можете подставить /var/lib/apt/lists/lock и выполнить те же самые команды.
В крайнем случае, если лень делать удаление файлов блокировки и завершение процессов, то просто перезагрузите компьютер. После перезагрузки скорее всего придется выполнить команду (если установка какого-то приложения не была завершена до конца):
Источник