Если вы обнаружите, что индикатор клавиатуры бесполезен, вы можете легко удалить апплет с верхней панели, выполнив следующие шаги:
Откройте системные настройки из Unity Launcher или из меню выключения верхнего правого угла. Затем нажмите «Ввод текста». В нижней части окна вы увидите «Показывать текущий источник ввода в строке меню», который включен по умолчанию. Снимите флажок, и апплет индикатора мгновенно исчезнет.В моем случае я просто ждал несколько минут, и замок был выпущен (выглядит как 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 все еще удалял старые ядра. Я использовал системный монитор, чтобы убедиться, что он все еще работает и не застревает. После завершения процесса все было в порядке.
Если у вас есть обновления безопасности, установленные для автоматической установки, это будет происходить часто. Я буквально жду 30 секунд, и это исправляет проблему. Просто выбросьте это там, если кто-нибудь еще столкнется с этой проблемой.
В моем случае X разбился, а apt-get
все еще удалял старые ядра. Я использовал системный монитор, чтобы убедиться, что он все еще работает и не застревает. Все было хорошо после завершения процесса.
Я вижу почти все ответы, рекомендующие удалять блокировку. Я не рекомендую делать это в качестве первой меры; возможно, если альтернативы нет. Блокировка помещается, когда выполняется процесс apt, и удаляется, когда процесс завершается. Если есть блокировка без видимого процесса, это может означать, что процесс по какой-то причине застрял.
Если вы попробуете
ps aux | grep apt
, который поймает процессы, содержащие слово apt
, по крайней мере. Если вы видите процесс apt-get
или процесс aptitude
, который выглядит застрявшим, вы можете попробовать
kill processnumber
, и если это не работает, попробуйте
kill -9 processnumber
должен убить процесс и удалить блокировку. Убийство процесса apt
или aptitude
является безобидным, если оно фактически не находится в середине установки пакета. В любом случае, если процесс застрял, у вас, вероятно, нет выбора, кроме как убить его.
Убийство процесса dpkg
напрямую, если оно присутствует, не является хорошей идеей, потому что если dpkg
активен, возможно, он манипулирует базой данных пакета, и его уничтожение может оставить базу данных пакета в несогласованном состоянии; т. е. поврежден.
Убийство процесса apt-get
или aptitude
в целом намного безопаснее.
У меня была эта проблема много раз. Для меня это было почти всегда вызвано 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 killall -9 apt && sudo killall -9 dpkg
Использовать на свой страх и риск
Проверьте, запущена ли программа запуска Software Updater
. Если это так, увеличьте его и посмотрите, что он делает. Если он все еще проверяет, то дождитесь его завершения. Когда он завершится, вы можете сказать, что программное обеспечение обновлено настолько близко, что приложение. Если он говорит, что есть доступные обновления, либо сделайте обновление, либо нажмите «Напомнить мне позже». После этого приложение закрывается, вы можете вернуться к использованию apt-get
или apt
.
Если Software Updater
не работает, просто используйте Dash для его вызова и ожидания завершения, а затем решите, вы хотите обновить или нажать «Напомнить мне позже». После этого приложение закрывается, вы можете вернуться к использованию apt-get
или apt
.