如何损坏 rpmdb?

如何损坏 rpmdb?

是的,你没看错,我实际上想破坏 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

相关内容