GNU/Linux >> Linux の 問題 >  >> Cent OS

破損した RPM データベースの再構築

数日前、お客様の 1 人が、CentOS Linux を使用して yum コマンドを使用してパッケージをインストールできないと報告しました。調査した結果、RPM データベースが破損していることがわかりました。これは、CentOS および RHEL サーバーで非常に一般的な問題です。

CentOS および RHEL サーバーは、rpm を使用してパッケージのインストール、削除、およびアップグレードを管理します。 rpm データベースが何らかの形で破損すると、Yum/Dnf などの RPM に依存する他のシステム ツールが動作しなくなります。

CentOS または RHEL で RPM データベースを再構築するにはどうすればよいですか?

RPM データベースを確実に修正できるように、いくつかの要件をインストールします。

yum install db4-utils yum-utils -y

現在の RPM データベースのバックアップがあることを常に確認してください

rsync -avpr /var/lib/rpm /var/lib/rpm.bak

破損した RPM データベースの再構築:2 つの解決策

1) RPM データベース ファイルを削除して再構築する:

rm /var/lib/__db* -fv
rpm --rebuilddb

rpm –rebuilddb コマンドは、ファイル /var/lib/rpm/Packages に基づいて RPM データベースを再構築します。 RPM データベースを再構築するには、「パッケージ」ファイルが必要です。低速のサーバーでは、このコマンドの実行に時間がかかる場合があります。

今すぐ yum normall を使用してみてください。それでも問題が解決しない場合は、ステップ 2 に進んでください:

2) RPM パッケージのリロード

破損した RPM データベースを再構築するもう 1 つの優れた戦略は、 db_dump および db_load ツールを使用することです。以下の例では、db_dump を使用して Packages ファイルをダンプし、db_load を使用して Packages ファイルをリロードします。これは、RPM データベースの問題を修正する別の方法です:

cd /var/lib/rpmdb
mv Packages Packages.bak
db_dump Packages.bak | db_load Packages

追加の健全性チェックとして、DB 内のすべてのヘッダーを照会します

rpm -qa

最後に、RPM データベースを再構築します。

rpm --rebuilddb

この時点で、RPM データベースが再び完全に機能するはずです。この 2 つの手順がうまくいかない場合、または他の解決策を知っている場合はお知らせください。

さらに読む

  • rpm.org による RPM データベースの再構築:http://www.rpm.org/max-rpm/ch-rpm-miscellania.html
  • RPM データベースの再構築:fedoraproject.org:http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s05s02.html
  • Daniel Berrange による RHEL での RPM DB リカバリ:http://people.redhat.com/berrange/notes/rpmrecovery.html

破損した RPM データベースの再構築の最終変更日:2017 年 2 月 7 日 Esteban Borges
Cent OS
  1. MySQLデプロイメントFAQ

  2. MySQLデータベースを最適化する

  3. RPMコマンド

  1. PostgreSQLデータベースサーバー

  2. 破損したMysqlデータベーステーブルを修復する方法

  3. 破損した RPM データベースから回復する方法 (RPM データベースの再構築)

  1. 分散データベースとは何ですか?

  2. マルチモデルデータベースとは何ですか?

  3. 12の最高のクラウドデータベース