[Решено] «ошибка: rpmdbNextIterator: пропуск» в Fedora Linux
На днях я попытался обновить свою настольную систему Fedora 34 с помощью команды sudo dnf --refresh update
и столкнулся с этой проблемой: ошибка: rpmdbNextIterator: пропуск h# 3643 Подпись заголовка V4 RSA/SHA256, идентификатор ключа 45719a39: BAD.
sudo dnf --refresh upgrade
Пример вывода:
[...]
Running transaction check
error: rpmdbNextIterator: skipping h# 3643
Header V4 RSA/SHA256 Signature, key ID 45719a39: BAD
Header SHA256 digest: BAD (Expected cc14b51b22595cfdf9d87d21e6ab8604b62eb6481c4669fe814a9109754f4d54 != 00a7eb336286e45cec1ce6b67c4093fe6059bbe1ec95279f81dc51e2dc97ec89)
Header SHA1 digest: BAD (Expected a5f792ecf06988120d3127a8b272471bf6927fca != 348ab5cbf958d0898e9ac2b69a5306a5fba7dbfd)
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: An rpm exception occurred: package not installed
Ошибка rpmdbNextIterator в Fedora
Это был первый раз, когда я получал такую ошибку, и я не был уверен в причине проблемы.
А также я попробовал несколько разных команд:
sudo dnf update
sudo dnf --refresh update
sudo dnf --refresh dist-upgrade
Каждый раз я получал ту же ошибку, как показано выше.
После нескольких поисков в Интернете я нашел решение этой проблемы на форумах Fedora.
Исправьте «ошибку: rpmdbNextIterator: пропуск» в Fedora.
Чтобы исправить ошибку rpmdbNextIterator
, просто перестройте базу данных RPM, выполнив следующую команду:
sudo rpm --rebuilddb
Если вы по-прежнему сталкиваетесь с той же ошибкой, выполните приведенную выше команду еще раз. Вы не увидите никаких результатов, если проблема устранена.
А затем обновите систему Fedora с помощью команды:
sudo dnf --refresh update
Исправьте «ошибку: rpmdbNextIterator: пропуск» в Fedora.
Иногда восстановление базы данных RPM не помогает. В этом случае вы можете сделать резервную копию и перестроить его снова, как показано ниже:
sudo mkdir /var/lib/rpm/old
sudo mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
Резервное копирование базы данных RPM:
mv /var/lib/rpm/__db* /var/lib/rpm/old/
Если вы не делаете резервную копию базы данных RPM, просто удалите ее.
sudo rm /var/lib/rpm/__db*
Теперь выполните следующую команду, чтобы восстановить базу данных RPM:
sudo rpm --rebuilddb
Если все пойдет хорошо, вы не получите никакого результата.
А затем обновите/обновите систему Fedora как обычно.
sudo dnf update --refresh
В некоторых случаях вы увидите ошибку «Отказано в доступе», как показано ниже.
sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.161084
Удалите указанную выше базу данных вручную с помощью команды rm
:
sudo rm -rf /var/lib/rpmold.rpmold.161084
Затем перестройте базу данных RPM:
sudo rpmdb --rebuilddb -v
Наконец, обновите систему Fedora:
sudo dnf update --refresh
Пример вывода:
Fedora 34 - x86_64 19 kB/s | 6.4 kB 00:00
Fedora 34 openh264 (From Cisco) - x86_64 3.2 kB/s | 989 B 00:00
Fedora Modular 34 - x86_64 14 kB/s | 6.5 kB 00:00
Fedora 34 - x86_64 - Updates 12 kB/s | 5.6 kB 00:00
Fedora Modular 34 - x86_64 - Updates 22 kB/s | 6.5 kB 00:00
RPM Fusion for Fedora 34 - Free 4.9 kB/s | 7.1 kB 00:01
RPM Fusion for Fedora 34 - Free - Updates 6.9 kB/s | 6.5 kB 00:00
RPM Fusion for Fedora 34 - Free - Updates 45 kB/s | 337 kB 00:07
RPM Fusion for Fedora 34 - Nonfree 6.6 kB/s | 7.1 kB 00:01
RPM Fusion for Fedora 34 - Nonfree - Updates 7.7 kB/s | 7.1 kB 00:00
Dependencies resolved.
[...]
Надеюсь это поможет.
Связанное чтение:
- [Решено] ошибка, повредившая заголовок rpmdb в Fedora, CentOS
- Как устранить ошибку «Ошибка: ошибка открытия rpmdb» в CentOS