Вы можете очень просто сделать это в Ubuntu 14.04 с рабочим столом Unity для текущего пользователя в терминале, выпустив следующую команду.
gsettings set com.canonical.indicator.keyboard visible false
Если пользователь не вошел в текущий сеанс Unity , вы можете установить настройку, запустив это.
dbus-launch --exit-with-session gsettings set com.canonical.indicator.keyboard visible false
В моем случае я просто ждал несколько минут, и замок был выпущен (выглядит как 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
Теперь вы можете установить любые пакеты.
Если у вас есть обновления безопасности, установленные для автоматической установки, это будет происходить часто. Я буквально жду 30 секунд, и это исправляет проблему. Просто выбросьте это там, если кто-нибудь еще столкнется с этой проблемой.
В моем случае я получал одно и то же сообщение, не понимая, что переключился на пользователя root и пытался sudo apt-get. Как только я понял это, я просто побежал, и он сработал. Глупо, но это может объяснить ошибку для некоторых.
Просто sudo rm -f /var/lib/apt/lists/lock
и повторите попытку.
apt-fast МОЖЕТ быть ответственным за неправильное разблокирование; это случается иногда, когда вы также прерываете apt-get
или dpkg
.