web-dev-qa-db-ja.com

YUMおよびRPMエラー:rpmdbNextIterator:h#をスキップします

RHEL 5にパッケージをインストールしているときに、このエラーが発生します

error: rpmdbNextIterator: skipping h#     150 region trailer: BAD, tag 1713401957 type 1919692085 offset -775433784 count 761427303

「yumcleanall」を使用してメタデータをクリーンアップしますが、それでも同じエラーです

1
OmiPenguin

インストールされたパッケージをrpmデータベースに照会するときに問題が発生し、メタタグが混乱する原因となったパッケージをフォローすると発生します。

rpm --rebuilddb

rpmデータベースパッケージを再構築すると、すべて正常に戻るはずです。場合によっては、問題がまだ残っているため、古いメタを削除して再構築する必要があります

mkdir /var/lib/rpm/old
mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
rpm --rebuilddb

私の場合、特定のディレクトリを削除できないバグが原因でエラーがスローされないことがあります。

$ Sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.17138

$ Sudo rm -rf /var/lib/rpmold.17138

$ Sudo rpmdb --rebuilddb -v

$ Sudo dnf update --refresh
determining the fastest mirror (2 hosts).. done.
RPM Fusion for Fedora 28 - Free - Updates                                                                                                                        412 kB/s | 369 kB     00:00    
RPM Fusion for Fedora 28 - Nonfree - Updates                                                                                                                      35 kB/s |  84 kB     00:02    
Last metadata expiration check: 0:00:00 ago on Mon 27 Aug 2018 09:08:56 AM +08.
Dependencies resolved.
Nothing to do.
Complete!

上記の出力(-v、詳細引数を使用)は、システムから/var/lib/rpmold.17138ディレクトリを削除するためのアクセス許可の問題があることを示しています。手動で削除し、rpmデータベースを再構築するだけで機能しました。

5
Robbi Nespu