Другой способ - установить jnettop, iptraf или iftop. Все команды терминала, чтобы увидеть текущий сетевой трафик.
В моем случае я просто ждал несколько минут, и замок был выпущен (выглядит как aptd, используемый для его удержания). Все это произошло сразу после загрузки системы.
Самый вероятный способ сделать это:
загрузить Ubuntu запустить тип терминала sudo apt-get install whatever, а командная строка apt перекрывается с 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
Затем мы должны проверить, что делает commad, мы можем найти его с помощью 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
Он должен выполнить эту работу. Если бы я не отправил SIGINT на этот раз (это похоже на нажатие CTRL + C):
sudo kill -2 12127
If это тоже не сработало, мы должны отправить SIGHUP (kill -1), и, наконец, если ничего не работает, я просто убиваю процесс:
sudo kill -9 12127
или
sudo pkill -9 apt-get
Затем я удаляю загруженные ресурсы:
sudo rm /var/lib/apt/lists/lock
Я не вижу этого ответа нигде выше, но на Ubuntu 16.04, я тоже столкнулся с этой проблемой. Причиной было то, что время на моем компьютере было установлено в будущее. (Это потому, что я нахожусь в системе с двойной загрузкой Windows + Ubuntu, и, я думаю, я перепутал местное время и время UTC.)
. Одна странная вещь заключалась в том, что дата и время заблокированного файла были точными дата и время, когда я запускал программу.
Затем я использовал «фьюзер», как описано в предыдущих сообщениях, и apt работал, но я получал жалобы на необходимость запуска dpkg -a -reconfigure. Когда я это сделал, у меня появились такие ошибки, как:
newline in field name #padding
в таких файлах, как '/var/lib/dpkg/updates/0003'.
Все это было очень странно, поскольку Я никогда раньше этого не видел. Итак, я думал, что это симптомы и изменил мои данные и время вручную. Я знал, что была проблема с датой / временем, когда я вошел в систему, но игнорировал ее. (Раньше он настраивал его автоматически через Интернет и NTP).
Затем все указанные проблемы были исправлены ... Надеюсь, это поможет кому-то еще! Наиболее заметным признаком является дата / время файла блокировки, являющегося точной датой / временем, которое вы пытаетесь запустить.
Если у вас есть обновления безопасности, установленные для автоматической установки, это будет происходить часто. Я буквально жду 30 секунд, и это исправляет проблему. Просто выбросьте это там, если кто-нибудь еще столкнется с этой проблемой.
В моем случае X разбился, а apt-get все еще удалял старые ядра. Я использовал системный монитор, чтобы убедиться, что он все еще работает и не застревает. После завершения процесса все было в порядке.
Только одна программа может удерживать блокировку. Убедитесь, что вы не используете 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
Теперь вы можете установить любые пакеты.
В моем случае X разбился, а apt-get
все еще удалял старые ядра. Я использовал системный монитор, чтобы убедиться, что он все еще работает и не застревает. Все было хорошо после завершения процесса.
Я не вижу этого ответа нигде выше, но на Ubuntu 16.04, я тоже столкнулся с этой проблемой. Причиной было то, что время на моем компьютере было установлено в будущее. (Это потому, что я нахожусь в системе с двойной загрузкой Windows + Ubuntu, и я думаю, что я испортил местное время и время UTC.)
. Одна странная вещь заключалась в том, что дата и время заблокированного файла были точными дата и время, когда я запускал программу.
Затем я использовал «фьюзер», как описано в предыдущих сообщениях, и apt работал, но я получал жалобы на необходимость запуска dpkg -a -reconfigure
. Когда я это сделал, у меня появились такие ошибки, как:
newline in field name #padding
в таких файлах, как '/var/lib/dpkg/updates/0003'.
Все это было очень странно, поскольку Я никогда этого не видел. Итак, я думал, что это симптомы и изменил мои данные и время вручную. Я знал, что была проблема с датой / временем, когда я вошел в систему, но игнорировал ее. (Раньше он устанавливал его автоматически через Интернет и NTP).
Затем все указанные проблемы были исправлены ... Надеюсь, это поможет кому-то еще! Наиболее заметным симптомом может быть дата / время файла блокировки, являющегося точной датой / временем, которое вы пытаетесь запустить.
У меня была эта проблема много раз. Для меня это было почти всегда вызвано apt-get или некоторым GUI, который назвал его зависающим по какой-то причине. Я должен был убить его, что оставило различные блокировки на месте.
В других ответах возникают очень хорошие моменты о том, чтобы в настоящее время не выполняются обновления, прежде чем делать что-либо радикальное, как удаление файлов блокировки. Однако, как только вы убедитесь, что это не так, для меня обычно работает следующее. Я получил его, прочитав много ответов на такие вопросы, как этот.
Хотя большинство или все это представлено в других ответах, это отводит исправление до нескольких команд.
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
при выполнении команды apt.
В противном случае это признак того, что что-то еще устанавливает или удаляет программное обеспечение и блокирует базу данных apt, пока она выполняет действия. Программы, которые могут это сделать, следующие:
ВАЖНО: попробуйте использовать последнее в качестве последнего средства так как это может привести к краху вашей системы. Сначала попробуйте убить любой исполняемый экземпляр 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
sudo killall -9 apt && sudo killall -9 dpkg
Использовать на свой страх и риск
Проверьте, запущена ли программа запуска Software Updater
. Если это так, увеличьте его и посмотрите, что он делает. Если он все еще проверяет, то дождитесь его завершения. Когда он завершится, вы можете сказать, что программное обеспечение обновлено настолько близко, что приложение. Если он говорит, что есть доступные обновления, либо сделайте обновление, либо нажмите «Напомнить мне позже». После этого приложение закрывается, вы можете вернуться к использованию apt-get
или apt
.
Если Software Updater
не работает, просто используйте Dash для его вызова и ожидания завершения, а затем решите, вы хотите обновить или нажать «Напомнить мне позже». После этого приложение закрывается, вы можете вернуться к использованию apt-get
или apt
.