#Что означает ошибка
unable to lock database
Другой pacman запущен или предыдущий завершился аварийно. Убедитесь, что процессов нет, и удалите /var/lib/pacman/db.lck.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Работает pacman | В случае «Arch Linux: pacman — unable to lock database (db.lck)» проверьте наличие причины «Работает pacman» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | Убедитесь через pgrep -a pacman и sudo fuser /var/lib/pacman/db.lck, что pacman работает; дождитесь завершения. |
| Аварийный выход | В случае «Arch Linux: pacman — unable to lock database (db.lck)» проверьте наличие причины «Аварийный выход» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | Только когда ни pacman, ни менеджер пакетов не запущены, проверяйте оставшийся db.lck как след прерывания; не удаляйте его вслепую. |
| Другая утилита | В случае «Arch Linux: pacman — unable to lock database (db.lck)» проверьте наличие причины «Другая утилита» по исходному действию и связанному сообщению; переходить к исправлению стоит после её подтверждения. | Закройте графический менеджер пакетов и дождитесь завершения фонового обновления; параллельные транзакции могут повредить базу. |
| Нет прав | Сообщение о запрете доступа возникает у конкретной учётной записи; сравните её права и права нужного файла, функции либо сетевого ресурса. | Запускайте pacman с sudo при наличии административных прав, но не считайте отсутствие прав поводом удалять блокировку. |
#Пошаговое решение
- Убедитесь, что другой pacman не работаетВ терминале Arch выполните
pgrep -a pacmanиsudo fuser /var/lib/pacman/db.lck. Если показан работающий процесс, дождитесь его окончания либо завершите обновление в графической программе. Не удаляйте блокировку при активной транзакции. - Уберите только заведомо осиротевшую блокировкуЕсли обе проверки не показывают работающий pacman, закройте все другие менеджеры пакетов, сделайте резервную копию базы
/var/lib/pacman/localи только затем удалите оставшийся/var/lib/pacman/db.lckпо инструкции ArchWiki. Повторитеsudo pacman -Syu. Если ошибка возвращается, проверьте права каталога и журнал предыдущего сбоя; не удаляйте другие файлы базы. - Проверьте дополнительную причину по результатам диагностикиРазграничьте две ситуации:
ps -ef | grep "[p]acman"показывает настоящий процесс — тогда дождитесь завершения, не удаляя блокировку. Если процессов pacman и работающих установщиков нет, но файлdb.lckсуществует, проверьтеsudo fuser /var/lib/pacman/db.lck; при пустом результате после проверки журналов блокировка могла остаться после аварии. Лишь тогда администратор может удалить *только этот* файл — никакие другие файлы базы и каталог/var/lib/pacmanудалять нельзя. - Убедитесь в исправлении исходной ошибкиЗапустите
sudo pacman -Syuпосле освобождения блокировки и проверьте, что исчезло сообщениеunable to lock database; внимательно прочитайте план обновления перед подтверждением. Если проблема возникла после прерванной установки, сначала проверьтеsudo pacman -Qkkна сообщения о недостающих файлах и изучите/var/log/pacman.log. При ошибках файловой системы остановитесь: удаление блокировки не исправляет повреждение диска.
#Если не помогло
Удаляйте db.lck только если никакой процесс pacman не запущен.
#Если проблема осталась
Если «Arch Linux: pacman — unable to lock database (db.lck)» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.