Я получаю эту ошибку при попытке использовать 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?
Как это исправить?
sudo killall -9 apt && sudo killall -9 dpkg
Используйте на свой страх и риск
В моем случае я получал то же сообщение, не осознавая, что переключился на пользователя root и пытался sudo apt-get. Как только я понял это, я просто запустил apt-get, и это сработало. Глупо, но для некоторых это может объяснить ошибку.
Миний хувьд, apt-get
хуучин цөмүүдийг арилгаж байх үед X осолдсон. Би Системийн мониторыг ажиллуулж, гацаагүй байгааг баталгаажуулахын тулд ашигласан. Процесс дуусмагц бүх зүйл сайхан болсон.
Проверьте, запущен ли программа запуска Software Updater
. Если да, то максимизируйте его и посмотрите, что он делает. Если он все еще проверяет, подождите, пока он не завершится. После завершения проверки может появиться сообщение о том, что программное обеспечение обновлено, поэтому закройте приложение. Если он скажет, что есть доступные обновления, либо сделайте обновление, либо нажмите "напомнить позже". После закрытия приложения можно вернуться к использованию apt-get
или apt
.
Если Software Updater
не запущен, просто используйте Dash, чтобы вызвать его и дождаться завершения, а затем решите, хотите ли вы обновить или нажмите "напомнить позже". После закрытия этого приложения вы можете вернуться к использованию apt-get
или apt
.
Я нигде выше не вижу этого ответа, но в Ubuntu 16.04 я тоже столкнулся с этой проблемой. Причина в том, что время на моем компьютере было установлено в будущее . (Это потому, что я использую систему с двойной загрузкой Windows + Ubuntu, и я полагаю, что перепутал местное время с временем UTC.)
Одна странность заключалась в том, что дата и время заблокированного файла были точными датой и временем, когда Я запустил программу.
Затем я использовал «fuser», как описано в предыдущих сообщениях, и apt работал, но я получал жалобы на необходимость запуска dpkg -a -reconfigure
. Когда я это сделал, у меня возникли такие ошибки:
newline in field name #padding
в файлах типа '/var/lib/dpkg/updates/0003'.
Все это было очень странно, какого я никогда раньше не видел. Итак, я подумал, что это симптомы, и вручную изменил свои данные и время. Я знал, что возникла проблема с датой / временем при входе в систему, но игнорировал ее. (Раньше это настраивалось автоматически через Интернет и NTP.)
Затем все вышеперечисленные проблемы были исправлены ... Надеюсь, это поможет кому-то другому! Наиболее заметным признаком, возможно, является то, что дата / время файла блокировки является точной датой / временем, когда вы пытаетесь запустить команду.
У меня была эта проблема много раз. Для меня это почти всегда было вызвано apt-get или каким-либо графическим интерфейсом, который по какой-то причине вызывал зависание. Мне пришлось убить его, что оставило различные блокировки.
Другие ответы поднимают очень хорошие моменты о том, чтобы убедиться, что в настоящее время не запущены обновления, прежде чем делать что-либо радикальное, например, удаление файлов блокировки. Однако, если вы уверены, что это не так, у меня обычно работает следующее. Я получил это, прочитав множество ответов на подобные вопросы.
Хотя большая часть или все это представлено в других ответах, это сводит исправление к нескольким командам.
sudo fuser -vki /var/lib/dpkg/lock
sudo fuser -vki /var/cache/apt/archives/lock
sudo fuser -vki /var/cache/debconf/config.dat
sudo dpkg --configure -a
Используется для разблокировки системы пакетов после какое-то обновление завершилось сбоем или завершилось без завершения другим способом. Эти команды следует запускать в указанном порядке.
Просто sudo rm -f / var / lib / apt / lists / lock
и повторите попытку.
apt-fast МОЖЕТ нести ответственность за неправильную разблокировку; это иногда случается, когда вы прерываете apt-get
или dpkg
тоже.
В моем случае , Мне пришлось подождать несколько минут, чтобы блокировка была снята (похоже, что apt
удерживал ее). Все это произошло сразу после загрузки системы.
Это произойдет, если у вас параллельно запущен «Диспетчер обновлений» для любой проверки обновлений или установки, когда процесс установки устанавливает блокировку. Если вы столкнулись с той же ошибкой без запущенного «Диспетчера обновлений», вам необходимо удалить ее из / var / lib / dgkg / lock
, что определенно невозможно сделать вручную
sudo fuser -cuk /var/lib/dpkg/lock
sudo rm -f /var/lib/dpkg/lock
отлично работает. Взято из: https://askubuntu.com/a/15469/68707
Если у вас есть обновления безопасности, настроенные на автоматическую установку, это будет происходить часто. Я буквально жду 30 секунд, и это решает проблему. Просто выбросьте это на случай, если кто-то еще столкнется с этой проблемой.
Эта ошибка может быть вызвана тем, что менеджер обновлений пытается автоматически обновить список пакетов в фоновом режиме, обычно сразу после вашего входа в систему, таким образом, блокируя каталог.
В этом случае просто подождите несколько секунд (или больше, если ваше последнее обновление было давно), чтобы завершить или запустить Update Manager, чтобы проверить статус.
Прежде всего, мы должны проверить, какой процесс создал файл блокировки, используя lsof
:
sudo lsof /var/lib/dpkg/lock
или в другой ситуации, когда / var / lib / apt / lists / lock
проблематично:
sudo lsof /var/lib/apt/lists/lock
Результат будет примерно таким:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apt-get 12127 root 4uW REG 252,1 0 86 /var/lib/apt/lists/lock
Затем мы должны проверить, что делает команда, мы можем узнать это с помощью ps
, pgrep
и т. д .; это команда apt-get
, поэтому я запускаю:
pgrep apt-get -a
Переключатель -a
отображает для меня полную команду, в моем случае это:
pgrep -a apt-get
12127 apt-get update
, мы видим, что она выполняется update
подкоманду, я мог бы запустить что-то вроде этого:
ps -f 12127
который производит:
UID PID PPID C STIME TTY STAT TIME CMD
root 12127 12126 0 09:39 pts/0 S+ 0:00 apt-get update
В этом случае я бы подождал несколько минут, пока ресурс будет освобожден, и если через 2 или 3 минуты проблема все еще существует или команда была чем-то, что меня не заботило или не было вредным для системы (например, этот apt-get update
). Я отправляю SIGTERM
процессу:
sudo kill -15 12127
It должен выполнить свою работу. Если этого не произошло, на этот раз я отправлю SIGINT
(это как нажатие CTRL + C ):
sudo kill -2 12127
Если это тоже не сработало, мы должны отправить SIGHUP
( kill -1
), и, наконец, если ничего не работает, я просто убиваю процесс:
sudo kill -9 12127
или
sudo pkill -9 apt-get
Затем я удалить занятые ресурсы:
sudo rm /var/lib/apt/lists/lock
Пока что лучший способ заставить его работать, не прерывая возможную фоновую установку (как это может произойти при удалении файла блокировки), - это остановить службу с помощью apt:
Ошибка:
# sudo apt-get upgrade
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?`
Решение:
sudo systemctl stop apt-daily.timer
После обновления системы я предлагаю повторно включить ее, так как ошибка, блокирующая ее, может быть исправлена с помощью обновления.
sudo systemctl start apt-daily.timer
Я не проверял, исправлена ли эта ошибка после обновления. Я добавлю новый комментарий, как только он будет подтвержден
Только одна программа может удерживать блокировку. Убедитесь, что у вас нет способности, синаптики или адепта. Закройте программу и запустите ее снова, она должна работать, либо откроется synaptic, либо откроется другое окно терминала apt-get, либо запустится менеджер обновлений, проверьте, запущен ли кто-то из них, закрывает ли он программу и попробуйте еще раз.
Попробуйте эту команду в терминале, чтобы найти, что работает
ps -e | grep -e apt -e adept | grep -v grep
Примечание:
Если это ничего не печатает, введите следующее в терминале, чтобы снять блокировку
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
Теперь вы можете установить любые пакеты.
Наиболее вероятный способ попасть сюда:
sudo apt- установка чего бы то ни было
и командная строка apt
перекрывается с автоматическим опросом update-manager
.
Так что если вы повторите попытку через несколько минут, то это должно быть исправлено.
Вы получите это сообщение, если забудете использовать sudo
при выполнении команды apt.
Иначе это признак того, что что что-то другое устанавливает или удаляет программное обеспечение и заблокировало базу данных apt во время выполнения действий. Программы, которые могут это сделать:
IMPORTANT: только попробуйте выполнить нижеуказанное в качестве крайней меры, так как это может привести к аварийному завершению работы вашей системы. Сначала попробуйте убить любой запущенный экземпляр apt
или aptitude
, как описано в ответе Faheem.
Вы можете снять блокировку, удалив файл, но не рекомендуется сначала закрывать программу, которая надежно держит блокировку, так как это может привести к повреждению или прерыванию инсталляции (плохо). Команда, предоставленная João, должна закрыть программу, удерживающую блокировку, а затем удалить блокировку, но не защитить вас от прерывания установки:
sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock
И эту же команду можно использовать для apt-блокировки кэша:
sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock
Ewechzehuelen Är / var / lib / dpkg / lock
Datei a Kraaft Package Ëmkonfiguratioun.
sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a
Et soll duerno funktionnéieren.
Не спешите что-то удалять , это может полностью повредить вашу систему; лучше подождите, пока текущая устанавливаемая или удаляемая программа завершит свою задачу, и после этого вы получите доступ. Если вы считаете, что в данный момент ничего не устанавливается или не удаляется, просто перезагрузите систему с помощью команды sudo reboot
.
Вы можете удалить файл блокировки с помощью следующей команды:
sudo rm /var/lib/apt/lists/lock
Вам также может потребоваться удалить файл блокировки в каталог кеша
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
После этого попробуйте снова открыть Synaptic.
в моем случае, после:
Я набрал
sudo apt update
sudp apt upgrade
, тогда я получаю эти проблемы
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?
Я исправил это, выполнив команду, которая была показана мне после запуска sudo apt update
apt list --upgradable
. Эта команда покажет вам список программ, в моем случае только Firefox, я закрыл Firefox, а затем смог запустить команду снова без проблем.
sudo apt upgrade
Я вижу, что почти во всех ответах рекомендуется удалить блокировку. Я не рекомендую делать это в первую очередь; возможно, если альтернативы нет. Блокировка устанавливается, когда apt-процесс запущен, и снимается, когда процесс завершается. Если есть блокировка без видимого запущенного процесса, это может означать, что процесс застрял по какой-то причине.
Если вы попробуете
ps aux | grep [a]pt
или
pgrep -a apt
, который будет ловить процессы, содержащие слово apt
, как минимум. Если вы видите процесс apt-get
или процесс aptitude
, который выглядит застрявшим, вы можете попробовать
sudo kill processnumber
, а если это не сработает, попробуйте
sudo kill -9 processnumber
Это должно убить процесс и может снять блокировку. Завершение процесса apt
или aptitude
безвредно, если оно фактически не находится в середине установки пакета. В любом случае, если процесс застрял, у вас, вероятно, нет другого выбора, кроме как убить его.
Убивать процесс dpkg
напрямую, если он присутствует, не является хорошей идеей, потому что if dpkg
активен, вероятно, он манипулирует базой данных пакетов, и его завершение может оставить базу данных пакетов в несогласованном состоянии; т.е. поврежден.
В целом гораздо безопаснее завершить процесс apt-get
или aptitude
.
Я пробовал ответы на самые популярные ответы на этой странице, и они всегда работали у меня без исключения, однако я обнаружил более простой способ решить эту проблему. Сначала немного теории. Что происходит до того, как пользователь получит это сообщение об ошибке?
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?
/ var / lib / dpkg / lock
заблокирован, поэтому терминал временно не может его использовать, но каким процессом он заблокирован? Это зависит от обстоятельств. Если вы загрузили компьютер несколько минут назад, он, вероятно, заблокирован приложением Software Updater. Попробуйте закрыть терминал и запустить приложение Software Updater. После завершения работы Software Updater он снимет собственную блокировку, и пользователю не нужно будет запускать какие-либо команды в терминале.
Другой случай, когда этот ответ полезен, - это виртуальная машина при загрузке гостевой ОС Ubuntu, которая некоторое время была неактивна. Обычно гостевая ОС Ubuntu начинает обновляться практически сразу. В процессе обновления часто блокируются команды, требующие установки, удаления или обновления программного обеспечения, до его завершения. Откройте Software Updater, дайте ему завершить работу и установите все обновления, которые вы хотите установить. По завершении работы Software Updater снимет собственную блокировку.
Для людей, которые заинтересованы в проактивном предотвращая эту ошибку в их сценариях, я обнаружил, что флаг -q в apt upgrade -yq
вызывал у меня эту проблему. Во время процесса обновления я предполагаю, что он иногда выдавал мне предупреждения (что-то вроде обновления рабочего стола, хотел бы я продолжить), и если эти предупреждения были подавлены, то я предполагаю, что это приводит к тому, что apt не разблокирует файлы, которые он защищает и он застрял.
По общему признанию, у меня были проблемы с воспроизведением этой ошибки в 100% случаев, , но удаление этой опции -q полностью устранило проблему для меня .
Как и все остальные, я ждал снятия блокировки. Через 30 минут я сдался и жестко загрузился в другой дистрибутив. Оттуда я использовал Интернет для некоторых исследований, которые привели меня сюда.
Оказывается, работает unattended-upgradedes.service
. Я обнаружил, что перезагрузка сломанной системы и запуск:
sudo systemctl disable apt-daily.service
sudo systemctl disable unattended-upgrades.service
sudo systemctl disable apt-daily-upgrade.service
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily.timer
sudo shutdown -r # Note it will take a couple minutes to reboot
позволили мне снова заставить сломанную систему работать для:
sudo apt update
sudo apt upgrade
sudo apt install -f
Однако это не исправило задержанные пакеты и невозможную ситуацию, о которой сообщил apt
в первую очередь. Похоже, это в первую очередь приводило к зависанию apt
при загрузке.