rpmdbを破損する方法は?

rpmdbを破損する方法は?

はい、そうです。私は実際にテスト目的でRPMDBを壊したかったです。インターネットを検索しようとしましたが、取得したのは再構築する方法だけでした。

だからついに私は試しました。

rpm --rebuilddb

実行プロセスを終了しました。

それから確認しました。

usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
echo $?
0

出力は1にする必要があります。これはRPMDBが破損していることを意味します。

答え1

私は意図的に私のrpmデータベースを壊したか、少なくともrpmエラーを引き起こしました。これが私が達成したかったのです。 __db.00*ファイルを0にします。

# ls -l /var/lib/rpm/__db.00*
-rw-r--r-- 1 root root 0 Jan 15 17:13 /var/lib/rpm/__db.001
-rw-r--r-- 1 root root 0 Jan 15 17:13 /var/lib/rpm/__db.002
-rw-r--r-- 1 root root 0 Jan 15 17:13 /var/lib/rpm/__db.003

# rpm -q filesystem
error: db5 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db5 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
error: db5 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages database in /var/lib/rpm
package filesystem is not installed

関連情報