Как я могу исправить этот поврежденный rpmdb? - PullRequest
0 голосов
/ 03 мая 2018

Мой rpmdb поврежден, и обычная процедура его исправления не работает.

Это ошибка:

cris@PolariSuse [~]$ rpm -qa > /dev/null
error: rpmdbNextIterator: skipping h#   64697
Header V3 RSA/SHA256 Signature, key ID 3dbdc284: BAD
Header SHA1 digest: BAD (Expected bf167126ecaa67d16fee74af17096529278aad8d != cd4a91ad1f0d65d360cce5dacffea553e358b550)

Если я пытаюсь это исправить, я получаю это:

cris@PolariSuse [~]$ sudo rpmdb --rebuilddb
[sudo] password for root:
error: cannot add record originally at 64697
warning: failed to rebuild database: original database remains in place

Я даже пытался db_dump с файлом Packages и последующим db_load : он, очевидно, работает, но недавно созданный файл Packages имеет ту же ошибку.

Однако я вижу, что после того, как rpm получит ошибку при перечислении пакетов, он, тем не менее, сможет продолжить перечисление последующих пакетов, поэтому в идеале я хотел бы перестроить файл Packages, пропуская поврежденную запись. К сожалению, я не нашел ни одной утилиты, способной сделать это.

Кто-нибудь знает другой способ исправить эту поврежденную базу данных?

1 Ответ

0 голосов
/ 04 мая 2018

Удалите заголовок и переустановите.

См. Справочную страницу rpm, чтобы узнать, как удалить данный заголовок # (64697 в сообщении, которое вы опубликовали).

Вам может понадобиться --nosignature --nodigest для отключения неудачных проверок

...