Сегодня я попытался обновить все пакеты с помощью команды sudo dnf –refresh upgrade на моем Fedora 35.
Во время обновления пакетов я столкнулся с такой проблемой – error: rpmdb: damaged header #5904 retrieved — skipping.
Я не мог обновить систему Fedora.
После нескольких поисков в Интернете я обнаружил, что база данных RPM по какой-то причине повреждена.
Если вы когда-нибудь столкнетесь с ситуацией, подобной моей, вы можете легко решить проблему ошибки “rpmdb damaged header”, восстановив базу данных RPM, как показано в следующих шагах.
Исправление error: rpmdb: damaged header в системах Fedora
На всякий случай создайте резервную копию поврежденной базы данных RPM:
$ mv /var/lib/rpm/__db* /var/lib/rpm/old/
Затем удалите базу данных RPM с помощью команды:
$ sudo rm -f /var/lib/rpm/__db*
Затем сбросьте контекст безопасности SELinux для каталога /var/lib/rpm/ на значения по умолчанию с помощью команды restorecon:
$ sudo restorecon -Rv /var/lib/rpm
Наконец, пересоберите базу данных RPM, чтобы исправить ошибку rpmdb damaged header в Fedora, RHEL и их клонах, таких как CentOS, AlmaLinux и Rocky Linux:
$ sudo rpmdb --rebuilddb
Если вы хотите увидеть, что происходит в фоновом режиме, используйте флаг -v.
$ sudo rpmdb --rebuilddb -v
А затем обновите систему Fedora как обычно.
$ sudo dnf update --refresh
Теперь я могу обновлять систему без каких-либо проблем.
см. также:
- 🐧 Как восстановить удаленные файлы пакетов rpm (библиотеки, файлы конфигурации) в CentOS / RHEL
- “Warning: RPMDB altered outside of yum.” При установке / обновлении / удалении пакета с помощью команды YUM
- 📦 Как найти версию пакета в системах Linux
- 🐧 Удаление пакетов, установленных в определенную дату/время в системах Linux
- 🐧 Как мигрировать с CentOS Linux 8 на CentOS Stream