Не удается заблокировать каталог администрирования (/ var / lib / dpkg /), другой процесс использует его?

Я получаю эту ошибку при попытке использовать 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?  

Как это исправить?

1124
задан 2 July 2016 в 13:33

24 ответа

sudo killall -9 apt && sudo killall -9 dpkg

Используйте на свой страх и риск

3
ответ дан 2 July 2016 в 13:33

В моем случае я получал то же сообщение, не осознавая, что переключился на пользователя root и пытался sudo apt-get. Как только я понял это, я просто запустил apt-get, и это сработало. Глупо, но для некоторых это может объяснить ошибку.

2
ответ дан 2 July 2016 в 13:33

Миний хувьд, apt-get хуучин цөмүүдийг арилгаж байх үед X осолдсон. Би Системийн мониторыг ажиллуулж, гацаагүй байгааг баталгаажуулахын тулд ашигласан. Процесс дуусмагц бүх зүйл сайхан болсон.

3
ответ дан 2 July 2016 в 13:33

Проверьте, запущен ли программа запуска Software Updater. Если да, то максимизируйте его и посмотрите, что он делает. Если он все еще проверяет, подождите, пока он не завершится. После завершения проверки может появиться сообщение о том, что программное обеспечение обновлено, поэтому закройте приложение. Если он скажет, что есть доступные обновления, либо сделайте обновление, либо нажмите "напомнить позже". После закрытия приложения можно вернуться к использованию apt-get или apt.

Если Software Updater не запущен, просто используйте Dash, чтобы вызвать его и дождаться завершения, а затем решите, хотите ли вы обновить или нажмите "напомнить позже". После закрытия этого приложения вы можете вернуться к использованию apt-get или apt.

3
ответ дан 2 July 2016 в 13:33

Я нигде выше не вижу этого ответа, но в Ubuntu 16.04 я тоже столкнулся с этой проблемой. Причина в том, что время на моем компьютере было установлено в будущее . (Это потому, что я использую систему с двойной загрузкой Windows + Ubuntu, и я полагаю, что перепутал местное время с временем UTC.)

Одна странность заключалась в том, что дата и время заблокированного файла были точными датой и временем, когда Я запустил программу.

Затем я использовал «fuser», как описано в предыдущих сообщениях, и apt работал, но я получал жалобы на необходимость запуска dpkg -a -reconfigure . Когда я это сделал, у меня возникли такие ошибки:

newline in field name #padding

в файлах типа '/var/lib/dpkg/updates/0003'.

Все это было очень странно, какого я никогда раньше не видел. Итак, я подумал, что это симптомы, и вручную изменил свои данные и время. Я знал, что возникла проблема с датой / временем при входе в систему, но игнорировал ее. (Раньше это настраивалось автоматически через Интернет и NTP.)

Затем все вышеперечисленные проблемы были исправлены ... Надеюсь, это поможет кому-то другому! Наиболее заметным признаком, возможно, является то, что дата / время файла блокировки является точной датой / временем, когда вы пытаетесь запустить команду.

3
ответ дан 2 July 2016 в 13:33

У меня была эта проблема много раз. Для меня это почти всегда было вызвано 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

Используется для разблокировки системы пакетов после какое-то обновление завершилось сбоем или завершилось без завершения другим способом. Эти команды следует запускать в указанном порядке.

4
ответ дан 2 July 2016 в 13:33

Просто sudo rm -f / var / lib / apt / lists / lock и повторите попытку.

apt-fast МОЖЕТ нести ответственность за неправильную разблокировку; это иногда случается, когда вы прерываете apt-get или dpkg тоже.

4
ответ дан 2 July 2016 в 13:33

В моем случае , Мне пришлось подождать несколько минут, чтобы блокировка была снята (похоже, что apt удерживал ее). Все это произошло сразу после загрузки системы.

6
ответ дан 2 July 2016 в 13:33

Это произойдет, если у вас параллельно запущен «Диспетчер обновлений» для любой проверки обновлений или установки, когда процесс установки устанавливает блокировку. Если вы столкнулись с той же ошибкой без запущенного «Диспетчера обновлений», вам необходимо удалить ее из / var / lib / dgkg / lock , что определенно невозможно сделать вручную

sudo fuser -cuk /var/lib/dpkg/lock
sudo rm -f /var/lib/dpkg/lock

отлично работает. Взято из: https://askubuntu.com/a/15469/68707

16
ответ дан 2 July 2016 в 13:33

Если у вас есть обновления безопасности, настроенные на автоматическую установку, это будет происходить часто. Я буквально жду 30 секунд, и это решает проблему. Просто выбросьте это на случай, если кто-то еще столкнется с этой проблемой.

10
ответ дан 2 July 2016 в 13:33

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

В этом случае просто подождите несколько секунд (или больше, если ваше последнее обновление было давно), чтобы завершить или запустить Update Manager, чтобы проверить статус.

21
ответ дан 2 July 2016 в 13:33

Прежде всего, мы должны проверить, какой процесс создал файл блокировки, используя 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
34
ответ дан 2 July 2016 в 13:33

Пока что лучший способ заставить его работать, не прерывая возможную фоновую установку (как это может произойти при удалении файла блокировки), - это остановить службу с помощью 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

Я не проверял, исправлена ​​ли эта ошибка после обновления. Я добавлю новый комментарий, как только он будет подтвержден

49
ответ дан 2 July 2016 в 13:33

Только одна программа может удерживать блокировку. Убедитесь, что у вас нет способности, синаптики или адепта. Закройте программу и запустите ее снова, она должна работать, либо откроется 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

Теперь вы можете установить любые пакеты.

53
ответ дан 2 July 2016 в 13:33

Наиболее вероятный способ попасть сюда:

  • загрузка Ubuntu
  • запуск терминала
  • типа sudo apt- установка чего бы то ни было

и командная строка apt перекрывается с автоматическим опросом update-manager.

Так что если вы повторите попытку через несколько минут, то это должно быть исправлено.

111
ответ дан 2 July 2016 в 13:33

Вы получите это сообщение, если забудете использовать sudo при выполнении команды apt.

Иначе это признак того, что что что-то другое устанавливает или удаляет программное обеспечение и заблокировало базу данных apt во время выполнения действий. Программы, которые могут это сделать:

  • The Software Center
  • The Update Manager
  • The apt link installer (думаю, теперь это проходит через SC)
  • The apt-get or aptitude command line utility line.
  • The Synaptic Package Manager

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
109
ответ дан 2 July 2016 в 13:33

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.

226
ответ дан 2 July 2016 в 13:33

Не спешите что-то удалять , это может полностью повредить вашу систему; лучше подождите, пока текущая устанавливаемая или удаляемая программа завершит свою задачу, и после этого вы получите доступ. Если вы считаете, что в данный момент ничего не устанавливается или не удаляется, просто перезагрузите систему с помощью команды sudo reboot .

17
ответ дан 2 July 2016 в 13:33

Это следует использовать в крайнем случае. Если вы будете использовать это неаккуратно, вы можете получить сломанную систему. Пожалуйста, попробуйте сначала другие ответы , прежде чем делать это.

Вы можете удалить файл блокировки с помощью следующей команды:

sudo rm /var/lib/apt/lists/lock

Вам также может потребоваться удалить файл блокировки в каталог кеша

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

После этого попробуйте снова открыть Synaptic.

916
ответ дан 2 July 2016 в 13:33

в моем случае, после:

  1. Открыть Firefox.
  2. Открыть терминал

Я набрал


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
1
ответ дан 2 July 2016 в 13:33

Я вижу, что почти во всех ответах рекомендуется удалить блокировку. Я не рекомендую делать это в первую очередь; возможно, если альтернативы нет. Блокировка устанавливается, когда 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 .

711
ответ дан 2 July 2016 в 13:33

Я пробовал ответы на самые популярные ответы на этой странице, и они всегда работали у меня без исключения, однако я обнаружил более простой способ решить эту проблему. Сначала немного теории. Что происходит до того, как пользователь получит это сообщение об ошибке?

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 снимет собственную блокировку.

0
ответ дан 22 November 2019 в 22:31

Для людей, которые заинтересованы в проактивном предотвращая эту ошибку в их сценариях, я обнаружил, что флаг -q в apt upgrade -yq вызывал у меня эту проблему. Во время процесса обновления я предполагаю, что он иногда выдавал мне предупреждения (что-то вроде обновления рабочего стола, хотел бы я продолжить), и если эти предупреждения были подавлены, то я предполагаю, что это приводит к тому, что apt не разблокирует файлы, которые он защищает и он застрял.

По общему признанию, у меня были проблемы с воспроизведением этой ошибки в 100% случаев, , но удаление этой опции -q полностью устранило проблему для меня .

0
ответ дан 22 November 2019 в 22:31

Как и все остальные, я ждал снятия блокировки. Через 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 при загрузке.

0
ответ дан 22 November 2019 в 22:31

Другие вопросы по тегам:

Похожие вопросы: