Я получаю эту ошибку при попытке использовать 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?
Как я могу это исправить?
apt
package-management
dpkg
Ла Ода Адам Сапутра
источник
источник
sudo lsof /var/lib/dpkg/lock
чтобы найти процесс, которому принадлежит файл блокировки (если он пустой, предположите, что блокировка осталась после предыдущей загрузки и может бытьsudo rm
d), затем подумайте о том, чтобы сделатьsudo kill -9 <PID>
(получить <PID> изlsof
вывода.root <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
, который, похоже, запускает apt update каждый раз, когда я включаю машину. В зависимости от размера обновления (которое часто соответствует тому, как давно я использовал эту машину в последний раз), это может занять от 1 до 10 минут. После этого блокировка освобождается для ручной установки и обновления. Попробуйте:sudo ps aux|grep apt
или `sudo ps aux | grep без присмотра.Ответы:
Это должно быть использовано в качестве крайней меры. Если вы используете это небрежно, вы можете получить сломанную систему. Пожалуйста, попробуйте другие ответы, прежде чем делать это.
Вы можете удалить файл блокировки с помощью следующей команды:
Вам также может понадобиться удалить файл блокировки в каталоге кеша
После этого попробуйте снова открыть Synaptic.
источник
Я вижу, почти все ответы рекомендуют снять блокировку. Я не рекомендую делать это в качестве первой меры; может быть, если нет альтернативы. Блокировка устанавливается при запуске apt-процесса и удаляется после его завершения. Если есть блокировка без видимого процесса, это может означать, что процесс застрял по какой-то причине.
Если вы пытаетесь
или же
это поймает процессы, содержащие слово
apt
, по крайней мере. Если вы видитеapt-get
процесс илиaptitude
процесс, который выглядит застрявшим, вы можете попробоватьи если это не сработает, попробуйте
Это должно убить процесс и может снять блокировку. Убийство
apt
илиaptitude
процесс безвреден, если только он не находится в процессе установки пакета. В любом случае, если процесс застрял, у вас, вероятно, нет другого выбора, кроме как убить его.Убийство
dpkg
процесса непосредственно, если присутствует, не является хорошей идея, потому что , еслиdpkg
активно, то он, вероятно , работы с базой данных пакетов, и убийством может покинуть базу данных пакетов в неустойчивом состоянии; то есть поврежден.Убийство
apt-get
илиaptitude
процесс в целом гораздо безопаснее.источник
dpkg
- это хорошая идея, потому что обычноdpkg
это манипулирование базой данных пакетов напрямую, и это может привести к повреждению.dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
при запускеsudo apt-get dist-upgrade
снова. Выполнение команды решило проблему. Я люблю Никс!killall apt-get
делает то же самое, что и вашps
/kill
комбо.sudo dkpg --configure -a
после уничтожения процесса мошеннических apt, чтобы все вернулось к нормальному состоянию.Удалите
/var/lib/dpkg/lock
файл и принудительно измените конфигурацию пакета.Это должно работать после этого.
источник
sudo
- выполнить команду как root,rm
- удалить файл. Может быть, попробоватьsudo rm /var/cache/apt/archives/lock
Вы получите это сообщение, если забудете использовать его
sudo
при выполнении команды apt.В противном случае это признак того, что что-то еще устанавливает или удаляет программное обеспечение и заблокировало базу данных apt во время выполнения действий. Программы, которые могут сделать это:
ВАЖНО: попробуйте только ниже в качестве крайней меры, так как это может привести к сбою вашей системы. Сначала попытайтесь убить любой работающий экземпляр
apt
илиaptitude
как описано в ответе Фахима .Вы можете отключить блокировку, удалив файл, но это не рекомендуется без предварительного закрытия программы, которая надежно удерживает блокировку , поскольку вы можете вызвать повреждение или прервать установку (плохо). Команда, предоставленная João, должна закрыть программу, которая удерживает блокировку, а затем снять блокировку, но не защитит вас от прерывания установки:
И та же команда может быть использована для блокировки кэша apt:
источник
sudo fuser -cuk /var/cache/apt/archives/lock
прямо перезагрузил мой компьютер.apt-get
сейчас разблокирован.Наиболее вероятный способ поразить это:
sudo apt-get install whatever
и командная строка
apt
перекрывается сupdate-manager
автоматическим опросом.Так что если вы попробуете снова через несколько минут, это должно исправить.
источник
sudo apt-get install
смог работать.Только одна программа может удерживать блокировку. Убедитесь, что вы не используете aptitude, synaptic или adept. Закройте программу и запустите ее снова, она должна работать. Вы можете либо открыть синапс, либо открыть другое окно терминала с запущенным apt-get, либо запустить менеджер обновлений. Проверьте его и посмотрите, работает ли какой-либо из них, если какой-либо из они бегут близко и попробуйте снова.
Попробуйте эту команду в терминале, чтобы найти то, что работает
Примечание.
Если это ничего не печатает, введите в терминале следующее, чтобы снять блокировку.
Теперь вы можете установить любые пакеты.
источник
pgrep -f 'apt|adept|dpkg'
намного короче.pgrep -a 'apt|adept|dpkg'
это лучший, более короткий эквивалент.Пока что лучший способ заставить его работать, не нарушая возможный фоновый запуск установки (как это может произойти, удалив файл блокировки), - это остановить службу с помощью apt:
Ошибка:
Решение:
После обновления системы я предлагаю снова включить ее, так как исправление ошибки может быть исправлено с обновлением.
sudo systemctl start apt-daily.timer
Я не проверял, что эта ошибка исправлена после обновления. Я добавлю новый комментарий, как только я подтвердил
источник
Прежде всего мы должны проверить, какой процесс создал файл блокировки, используя
lsof
:или в другой ситуации, где
/var/lib/apt/lists/lock
проблематично:Вывод будет близок к чему-то вроде:
Затем мы должны проверить, что делает запятая, мы можем узнать это с помощью
ps
иpgrep
т.д .; командаapt-get
так я бегу:-a
Переключатель перечисляет всю команду для меня, в моем случае это:мы можем видеть, что он работает
update
подкомандой, я мог бы запустить что-то вроде этого:который производит:
В этом случае я бы подождать некоторое минуту на ресурс будет освобожден , и если после 2 или 3 минут проблема все еще существует , или команда была то , что я не забочусь о том или не вреден для системы (как это
apt-get update
) , я отправитьSIGTERM
в процесс:Это должно сделать работу, если это не так, я собираюсь отправить на
SIGINT
этот раз (это как нажать CTRL+ C):Если это тоже не сработало, мы должны отправить
SIGHUP
(kill -1
), и, наконец, если ничего не работает, я просто убиваю процесс:или же
Затем я удаляю занятые ресурсы:
источник
/var/lib/dpkg/lock
,/var/lib/apt/lists/lock
что файл в вопросе.pgrep
иpkill
.dpkg --configure -a
может быть необходимоЭта ошибка может быть вызвана тем, что менеджер обновлений пытается автоматически обновить список пакетов в фоновом режиме, обычно сразу после входа в систему, блокируя каталог.
В этом случае подождите несколько секунд (или больше, если ваше последнее обновление было давно), чтобы оно завершилось, или запустите диспетчер обновлений для проверки состояния.
источник
ps
, которое я видел несколько раз, яdpkg
обновлял всю информацию и терпеливо ждал, пока все закончится. , Затем я запустил Software Updater, пока все не было обновлено, прежде чем пытаться установить что-то новое.Это произойдет, если у вас есть «Диспетчер обновлений», работающий параллельно для какой-либо проверки обновлений, или установка в процессе установки блокирует. Если вы столкнулись с той же ошибкой без запуска «Менеджера обновлений», вы должны удалить ее
/var/lib/dgkg/lock
, что, безусловно, невозможно сделать вручную.работает отлично. Взято из: https://askubuntu.com/a/15469/68707
источник
Не спешите удалять что-либо, это может полностью повредить вашу систему; скорее дождитесь, пока текущая установка или удаление программы завершит свою задачу, и после этого вы получите доступ. Если вы считаете, что в данный момент ничего не устанавливается и не удаляется, просто перезагрузите систему с помощью команды
sudo reboot
.источник
Если у вас установлены обновления безопасности для автоматической установки, это будет происходить часто. Я буквально жду 30 секунд, и это решает проблему. Просто добавьте это на случай, если кто-то еще столкнется с этой проблемой.
источник
В моем случае мне пришлось ждать несколько минут, пока замок не будет снят (похоже, он
apt
использовался для его удержания). Это все произошло сразу после загрузки системы.источник
Просто
sudo rm -f /var/lib/apt/lists/lock
и попробуйте еще раз.apt-fast МОЖЕТ быть ответственным за неправильную разблокировку; это случается иногда, когда вы прерываете
apt-get
илиdpkg
слишком.источник
У меня была эта проблема много раз. Для меня это почти всегда было вызвано apt-get или некоторым графическим интерфейсом, который вызывал зависание по какой-то причине. Я должен был убить его, который оставил различные замки на месте.
Другие ответы очень полезны для того, чтобы убедиться, что в данный момент обновления не запущены, прежде чем предпринимать какие-либо радикальные действия, такие как удаление файлов блокировки. Однако, если вы уверены, что это не так, у меня обычно работает следующее. Я получил это, прочитав много ответов на такие вопросы, как этот.
В то время как большая часть или все это представлено в других ответах, исправление сводится к нескольким командам.
Используется для разблокировки системы пакетов после того, как какое-либо обновление завершилось или прервалось без завершения каким-либо другим способом. Эти команды должны выполняться в указанном порядке.
источник
Я не вижу такого ответа выше, но в Ubuntu 16.04 я также столкнулся с этой проблемой. Причиной было то, что время на моем компьютере было установлено в будущее . (Это потому, что я нахожусь на двойной загрузочной системе Windows + Ubuntu, и я думаю, что я испортил местное время против времени UTC.)
Одна странность заключалась в том, что дата и время заблокированного файла были точной датой и временем запуска программы.
Затем я использовал «fuser», как описано в предыдущих постах, и apt работал, но я получал жалобы на необходимость запуска
dpkg -a -reconfigure
. Когда я сделал это, я получил такие ошибки, как:в таких файлах, как '/ var / lib / dpkg / updates / 0003'.
Все это было очень странно, поскольку я никогда не видел это прежде. Итак, я подумал, что это симптомы, и изменил мои данные и время вручную. Я знал, что была проблема с датой / временем, когда я вошел в систему, но игнорировал ее. (Раньше он настраивал его автоматически через интернет и NTP).
Затем все вышеперечисленные проблемы были исправлены ... Надеюсь, это поможет кому-то еще! Наиболее заметным симптомом, возможно, является дата / время файла блокировки, являющееся точной датой / временем, когда вы пытаетесь выполнить команду.
источник
В моем случае, X потерпел крах, когда
apt-get
все еще удалял старые ядра. Я использовал системный монитор, чтобы убедиться, что он все еще работает и не завис. Все было хорошо, как только процесс закончился.источник
Проверьте Launcher, чтобы увидеть, если
Software Updater
работает. Если это так, максимизируйте его и посмотрите, что он делает. Если он все еще проверяет, дождитесь его завершения. Когда он завершится, он может сказать, что программное обеспечение обновлено, поэтому закройте приложение. Если он говорит, что есть доступные обновления, либо сделайте обновление, либо нажмите «Напомнить позже». После этого это приложение закрывается, вы можете вернуться к использованиюapt-get
илиapt
.Если
Software Updater
не работает, просто используйте Dash, чтобы вызвать его и дождаться завершения, а затем решите, хотите ли вы обновить или нажмите «Напомнить позже». После этого это приложение закрывается, вы можете вернуться к использованиюapt-get
илиapt
.источник
В моем случае я получал то же сообщение, не осознавая, что переключился на пользователя root и пытался выполнить sudo apt-get. Как только я понял это, я просто запустил apt-get, и это сработало. Глупо, но это все же может объяснить ошибку для некоторых.
источник
sudo
с правами root (и даже если вы не можете, это не выдаст это сообщение об ошибке). Скорее всего, произошло то, что другой процесс завершился, когда вы писали следующую команду.Используйте на свой риск
источник
в моем случае после:
Я набрал
тогда я получаю проблемы Я исправил это, выполнив команду, которая была показана мне после запускаsudo apt update
Эта команда покажет вам список программ, в моем случае только Firefox, я закрыл Firefox, затем мог запустить команду снова без проблем.
источник
Для людей, которые заинтересованы в проактивном предотвращении этой ошибки в своих скриптах, я обнаружил, что флаг -q on
apt upgrade -yq
вызывает у меня эту проблему. Я предполагаю, что во время процесса обновления мне иногда будут выдаваться предупреждения (что-то вроде обновления рабочего стола, я бы хотел продолжить), и если эти предупреждения будут подавлены, то я думаю, что это приводит к тому, что apt не разблокирует защищаемые файлы. и он застрял.По общему признанию, у меня были проблемы с воспроизведением этой ошибки в 100% случаев, но устранение этой опции -q полностью устранило проблему для меня .
источник
Как и большинство других, я ждал, пока замок будет снят. Через 30 минут я сдался и тяжело загрузился в другой дистрибутив. Оттуда я использовал Интернет для некоторых исследований, которые привели меня сюда.
Оказывается,
unattended-upgrades.service
работает. Я обнаружил, что перезагружаюсь в сломанную систему и запускаю:позволил мне заставить сломанную систему работать снова для:
Однако это не исправило скрытые пакеты и невозможную ситуацию, о которой сообщалось
apt
в первую очередь. Казалось бы, это было причинойapt
блокировки при загрузке в первую очередь.источник