是的,你没看错,我实际上想破坏 RPMDB 以进行测试。我尝试用谷歌搜索它,但我得到的只是如何重建它。
所以最后我尝试了
rpm --rebuilddb
并杀死了正在执行的进程。
然后我验证了
usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
echo $?
0
我需要它的输出 1。这意味着 RPMDB 已损坏
答案1
我只是故意损坏了我的 rpm 数据库,或者至少让它出现 rpm 错误,这就是我想要完成的任务。只需将 __db.00* 文件清零即可。
# 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