Вопрос: Не удалось заблокировать каталог администрирования (/ 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?  

Как я могу это исправить?


820
2017-11-30 02:12


Источник


Это также верно, если вы перезагружаетесь? Может быть, какая-то старая apt-нить блокирует файл, вам нужно выяснить, что и убить, или просто перезагрузить это сделает. - Bruno Pereira
Эта процедура почти всегда исправляет эту проблему, а когда это не так, ее вывод (текст из терминала) иногда полезен. Если вы решите это сделать, вы можете добавить этот текст к своему вопросу. - Eliah Kagan
Я бы предложил еще одну вещь, которую вы можете заметить, столкнувшись с этой проблемой. Проверьте, установлены ли ваши диски. Если это не так, вы не сможете получить блокировку, поскольку установщик пакета не сможет получить доступ к файловой системе. Надеюсь это поможет. :) - Hari
Вы можете использовать sudo lsof /var/lib/dpkg/lock для поиска процесса, которому принадлежит файл блокировки (если он пуст, предположим, что блокировка оставлена ​​после предыдущей загрузки и может быть sudo rmг), затем рассмотрим возможность sudo kill -9 <PID> (получите <PID> из lsof вывод. - waltinator
Это может быть признаком того, что что-то еще устанавливает или удаляет программное обеспечение и блокирует APT-базу данных при выполнении действий. - Foreever


Ответы:


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

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

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

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

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

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


692
2018-02-07 02:22



хорошо ... но почему это случилось? - Jaime Hablutzel
@jaime: возможно, apt-get (или какой-то интерфейс GUI для него) был остановлен во время выполнения, оставив apt в заблокированном состоянии. - bouke
Я бы принял это как лучший ответ. исправьте. - Anwar
@AnwarShah нет, есть другие соображения, прежде чем обойти удаление файлов системы. - Braiam
rm / var / lib / dpkg / lock; dpkg --configure -a: - WitchCraft


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

Если вы пытаетесь

ps aux | grep apt

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

kill processnumber

и если это не работает, попробуйте

kill -9 processnumber

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

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

Убийство apt-get или aptitude процесс в целом намного безопаснее.


535
2017-07-03 09:01



@Link Я не думаю, что убиваю dpkg это хорошая идея, потому что обычно dpkg напрямую манипулирует базой данных пакета, и это может привести к повреждению. - Faheem Mitha
Если dpkg может привести к повреждению базы данных, dpkg был плохо разработан. Период. - Jay Sullivan
для меня это привело к ошибке dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. при запуске sudo apt-get dist-upgrade еще раз. Запустив команду, она решила проблему. Я люблю Никс! - Wayne Phipps
Заметка, killall apt-get делает то же, что и ваше ps/kill комбо. - Cerin
Обратите внимание, что я обнаружил, что мне нужно запустить sudo dkpg --configure -a после того, как он убил процесс изгоев, чтобы вещи вернулись к нормальной жизни. - starbeamrainbowlabs


Удалите /var/lib/dpkg/lock файл и принудительное переназначение пакета.

sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

После этого он должен работать.


169
2018-01-29 11:27



эти команды помогли, но теперь, когда я попытался установить снова, получил этот ответ: Не удалось получить lock / var / cache / apt / archives / lock - open. Я думаю, что мне придется делать как предыдущую проблему разблокировки, но, пожалуйста, скажите мне точные ключевые слова для команды. Я абсолютный новичок. - kern
sudo - выполнить команду как root, rm - удалить файл. Возможно, попробуйте sudo rm /var/cache/apt/archives/lock - kubahaha
Это нехорошее предложение: слепое удаление удачи может привести к повреждению состояния dpkg. - poolie
Почему бы не исправить себя сейчас? - Marian Klühspies
Это сработало для меня. Увы, выше не было. - 1rq3fea324wre


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

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

  • Центр программного обеспечения
  • Менеджер обновлений
  • Утилита apt link (я думаю, теперь это проходит через SC)
  • Утилиты командной строки apt-get или aptitude.
  • Менеджер пакетов Synaptic

ВАЖНО: попробуйте использовать нижеследующее как последнее средство, так как оно может привести к краху вашей системы. Сначала попробуйте убить любой запущенный экземпляр apt или aptitude как описано в Ответ Фахема,

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

95
2017-11-30 02:17



Когда я получил сообщение об ошибке, я обновлял свое программное обеспечение. - raindrop
Это рухнуло для меня - - umpirsky
sudo fuser -cuk /var/cache/apt/archives/lock напрямую перезагрузился мой компьютер. apt-get теперь разблокирована. - Maxime R.
Это разбило мой весь сервер. - 에이바
Убийство apt или dpkg на полпути - это не отличная идея. - poolie


Самый вероятный способ попасть в это:

  • загрузить Ubuntu
  • запустить терминал
  • тип sudo apt-get install whatever

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

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


62
2017-11-30 03:08



Отличный намек в отличие от полудюжины ответов, предлагающих просто удалить файл ;-) Я случайным образом столкнулся с проблемой и, скорее всего, это все! - Alex
Достаточно безопасно, пришлось подождать немного раньше sudo apt-get install может работать. - sargas
Ну, это не работает всегда, да, я неоднократно использовал перезагрузку. Если это не подходит, попробуйте это askubuntu.com/a/315791/378845 перед удалением замков - Menuka Ishan
@menuka, почему бы просто не закончить. - poolie
@poolie Поскольку существуют другие ограничения, которые останавливают процесс от завершения - Menuka Ishan


Блокировка может содержать только одна программа. Убедитесь, что вы не используете aptitude, synaptic или adept. Закройте программу и запустите ее снова, она должна работать. У вас может быть либо синаптический доступ, либо другое открытое окно терминала, работающее 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

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


48
2017-11-30 04:55



Удаление файла блокировки - это то, что я считаю, опасной задачей. Если другой процесс блокируется по уважительной причине - и вы удаляете этот файл блокировки и принудительно устанавливаете с тем, что вы делали раньше - вы могли бы серьезно отрицательно повлиять на вашу систему. - Marco Ceppi♦
Вот почему я дал это в Note.If все вышеперечисленное не удалось, единственный способ удалить блокировку. Это не вызовет никаких проблем, если процессы dpkg и apt-get / aptitude не запущены - karthick87
pgrep -f 'apt|adept|dpkg' намного короче. - Barry
Спасибо! это работает. pgrep -f 'apt | adept | dpkg', а затем sudo умение (число), убить все число и затем установить работы! - creator


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

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


33
2018-02-02 10:01



После обновления системы и повторного запуска сервиса apt-daily.timer я пока не сталкиваюсь с этой проблемой. - Jairelee
Это решило мою проблему, спасибо. - inkredibl
Это, пожалуй, самый чистый метод по сравнению со всеми вышеизложенными выше. Он работал в моем случае безупречно, спасибо! - CygnusX1
Это безупречно работало и в 17.10 - Elder Geek
Работает на 17.10 +1 - Eng.Fouad