Исправить ошибку «невозможно заблокировать базу данных» в Arch Linux
На днях я собирался обновить свою систему Arch Linux. Когда я попытался обновить систему, я столкнулся с ошибкой "невозможно заблокировать базу данных" в Arch Linux. Я не смог установить или удалить какие-либо пакеты. В этом кратком руководстве объясняется, как исправить ошибку «невозможно заблокировать базу данных» в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro Linux.
Основная причина проблемы «невозможно заблокировать базу данных»
Ошибка «невозможно заблокировать базу данных» в Arch Linux обычно возникает, когда другой процесс уже обращается к базе данных пакетов, например, менеджер пакетов или инструмент обновления программного обеспечения. Эта ошибка не позволяет вам выполнять определенные операции по управлению пакетами.
Файл блокировки с именем /var/lib/pacman/db.lck
создается Pacman, чтобы гарантировать, что только один экземпляр изменяет базу данных системных пакетов в любой момент времени, предотвращая потенциальная коррупция.
Чтобы решить эту проблему, проверьте, запущен ли в данный момент какой-либо другой менеджер пакетов или средство обновления программного обеспечения. Иногда вы могли случайно открыть несколько экземпляров менеджеров пакетов или инструментов обновления. Закройте все работающие в данный момент инструменты управления пакетами или лучше дождитесь, пока они завершат свою работу.
Если активных процессов управления пакетами нет, вы можете удалить файлы блокировки вручную, как показано в следующих шагах.
Исправить ошибку «невозможно заблокировать базу данных» в Arch Linux
Вот команда, которую я ввел для обновления моей системы Arch Linux:
pacman -Syu
И он вернул следующую ошибку:
:: Synchronizing package databases...
error: failed to update core (unable to lock database)
error: failed to update extra (unable to lock database)
error: failed to update community (unable to lock database)
error: failed to update multilib (unable to lock database)
error: failed to synchronize any databases
error: failed to init transaction (unable to lock database)
error: could not lock database: File exists
if you're sure a package manager is not already
running, you can remove /var/lib/pacman/db.lck
Исправить ошибку «Невозможно заблокировать базу данных» в Arch Linux
Прелесть дистрибутивов Linux в том, что иногда они иногда выдают сообщения об ошибках вместе с явными решениями.
Как вы можете видеть в приведенном выше выводе, там написано: ».. вы можете удалить /var/lib/pacman/db.lck».
Итак, я просто удалил вышеупомянутый файл командой:
sudo rm /var/lib/pacman/db.lck
Вуаля! Это сработало. После этого я смогу без проблем обновлять, устанавливать и удалять.
sudo pacman -Syu
Пример вывода:
:: Synchronizing package databases...
core 122.8 KiB 162K/s 00:01 [######################] 100%
extra 1771.8 KiB 249K/s 00:07 [######################] 100%
community 3.3 MiB 256K/s 00:13 [######################] 100%
multilib 163.5 KiB 265K/s 00:01 [######################] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
Packages (8) ca-certificates-mozilla-3.22-1 coreutils-8.25-1 curl-7.47.1-1
gcc-5.3.0-4 gcc-libs-5.3.0-4 libgcrypt-1.6.5-1 nano-2.5.2-1
pacman-mirrorlist-20160208-2
Total Download Size: 42.79 MiB
Total Installed Size: 187.90 MiB
Net Upgrade Size: 0.91 MiB
:: Proceed with installation? [Y/n] y
:: Retrieving packages ...
gcc-libs-5.3.0-4-x86_64 12.7 MiB 261K/s 00:50 [######################] 100%
coreutils-8.25-1-x86_64 2.1 MiB 262K/s 00:08 [######################] 100%
ca-certificates-moz... 363.0 KiB 241K/s 00:02 [######################] 100%
curl-7.47.1-1-x86_64 798.3 KiB 263K/s 00:03 [######################] 100%
gcc-5.3.0-4-x86_64 26.1 MiB 247K/s 01:48 [######################] 100%
libgcrypt-1.6.5-1-x... 403.5 KiB 244K/s 00:02 [######################] 100%
nano-2.5.2-1-x86_64 407.0 KiB 262K/s 00:02 [######################] 100%
pacman-mirrorlist-2... 5.3 KiB 408K/s 00:00 [######################] 100%
(8/8) checking keys in keyring [######################] 100%
(8/8) checking package integrity [######################] 100%
(8/8) loading package files [######################] 100%
(8/8) checking for file conflicts [######################] 100%
(8/8) checking available disk space [######################] 100%
:: Processing package changes...
(1/8) upgrading gcc-libs [######################] 100%
(2/8) upgrading coreutils [######################] 100%
(3/8) upgrading ca-certificates-mozilla [######################] 100%
(4/8) upgrading curl [######################] 100%
(5/8) upgrading gcc [######################] 100%
(6/8) upgrading libgcrypt [######################] 100%
(7/8) upgrading nano [######################] 100%
(8/8) upgrading pacman-mirrorlist [######################] 100%
warning: /etc/pacman.d/mirrorlist installed as /etc/pacman.d/mirrorlist.pacnew
Надеюсь это поможет.