#Что означает ошибка
error: failed to synchronize all databases (unable to lock database)
error: failed retrieving file ... from mirror : The requested URL returned error: 404 или failed to synchronize all databases (unable to lock database) — pacman не смог обновить списки пакетов. Причины: устаревшие или недоступные зеркала, блокировка базы (db.lck), проблемы сети, неверное время.
Если ошибка про блокировку, зависший процесс pacman оставил файл.
Если про 404 или тайм-аут, нужно обновить список зеркал.
Ошибка может означать блокировку базы (другой процесс pacman или остаток файла db.lck), проблемы зеркал и сети. Сначала проверьте, что pacman не запущен.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Остался файл блокировки | Pacman был прерван. | Удалите /var/lib/pacman/db.lck, если процесс не запущен. |
| Недоступно зеркало | Ошибки загрузки. | Обновите список зеркал. |
| Нет сети | Ping не проходит. | Проверьте подключение. |
| Неверные время и дата | Ошибки подписи. | Синхронизируйте время. |
#Пошаговое решение
- Проверьте, что pacman не запущенВ Arch Linux откройте терминал и выполните
pgrep -a pacman. Если команда показывает работающий процесс, дождитесь окончания установки/обновления и проверьте, изменяется ли вывод; не запускайте второй pacman. При пустом выводе дополнительной установки pacman не видно — проверьте интернет и зеркала. Не удаляйте блокировку, пока не выяснили, какой процесс её создал и есть ли текущая транзакция. - Удалите db.lck при отсутствии процессовФайл
/var/lib/pacman/db.lckудалять допустимо лишь в особой ситуации: после аварийно прерванного pacman, когдаpgrep -a pacmanне показывает процесса и вы уверены, что другая операция с базой пакетов не идёт. Перед этим запишите время и причину прерывания, сохраните резервную копию важных данных. Если источник блокировки неизвестен, не удаляйте файл: сначала перезагрузите компьютер обычным способом или обратитесь к администратору. После восстановления работы выполняйте полноеsudo pacman -Syu, а не частичное обновление. - Обновите список зеркалВ Arch Linux список зеркал находится в
/etc/pacman.d/mirrorlist; сначала прочитайте его командойcat /etc/pacman.d/mirrorlist. Если серверы дают 404 или недоступны, выберите актуальные зеркала через официальный Arch Linux Mirrorlist Generator или настроенныйreflector, предварительно сохранив копию файла. В Manjaro вместо этого применяетсяpacman-mirrors, команды двух систем не взаимозаменяемы. После исправления выполняйте только полноеsudo pacman -Syu; не используйтеpacman -Syотдельно. - Проверьте сеть, DNS и времяОткройте несколько разных сайтов или сервисов и проверьте, работает ли подключение на другом устройстве в той же сети. Для сравнения переключитесь между Wi-Fi и мобильным интернетом, если это возможно. Если ошибка только на одном устройстве, проверяйте его сетевые настройки; если на всех — роутер или провайдера.
- Обновите ключи и системуОткройте терминал и прочитайте полную ошибку менеджера пакетов, включая имя репозитория и ключа. Сверьте источник с официальной документацией текущей версии Linux; ключи устанавливайте только по инструкции владельца официального репозитория. Не применяйте опции, отключающие GPG-проверку, и не импортируйте случайные ключи из неизвестных ссылок.
- Проверка запущенных процессов pacmanLinux · Терминал (Bash)КомандаПроверка запущенных процессов pacman.
pgrep -a pacman
#Блокировка
Сообщение unable to lock database: убедитесь, что pacman не запущен (ps aux | grep -i pacman), затем удалите файл: sudo rm /var/lib/pacman/db.lck. Не удаляйте, пока идёт обновление — это повредит базу. После — sudo pacman -Syy.
#Зеркала
Обновите список зеркал: Arch — sudo pacman -S reflector и sudo reflector --country Germany,Poland --protocol https --latest 10 --sort rate --save /etc/pacman.d/mirrorlist; Manjaro — sudo pacman-mirrors --fasttrack 5. Затем sudo pacman -Syyu. Проверьте, что в /etc/pacman.d/mirrorlist есть раскомментированные Server =. Проверка доступа: curl -I https://geo.mirror.pkgbuild.com/core/os/x86_64/core.db.
#Сеть и время
Проверьте интернет и DNS (ping archlinux.org, resolvectl status). Отключите VPN или прокси, настройте их в окружении (https_proxy) или XferCommand. Проверьте системное время (timedatectl): неверное время ломает TLS. Если ошибка invalid or corrupted database (PGP signature), обновите ключи: sudo pacman -S archlinux-keyring или sudo pacman-key --refresh-keys. Обновляйте систему целиком (-Syu), а не только базы (-Sy).
pgrep -a pacmancat /etc/pacman.d/mirrorlist