我需要/var/lib/rpm
以适合脚本编写的方式验证 RPM 数据库(不是 RPM, 中的数据库)没有损坏或不一致(即,如果良好则返回退出代码 0,如果损坏则返回其他代码)。我可以使用db_verify
来验证单个 Berkeley 数据库,但假设单个 Berkeley 数据库完全有效并且不一致是跨数据库的。我通过删除(重命名)一个数据库进行了实验,rpm -qa --dump
结果却一无所知rpm -Va
只是用警告重新生成它。我想我可以在输出中查找字符串“warning:”,但这似乎不可靠。除了我真的不想验证文件,我想验证数据库。我搜索了与 OpenSuSE RPM 相关的软件包,但没有找到任何合适的。有什么建议?我更喜欢旨在进行彻底验证的东西,而不仅仅是转储。
--verifydb
至少从 rpm-4.1 开始就有一个未记录的标志。
{ "verifydb", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_OR|POPT_ARGFLAG_DOC_HIDDEN),
&mode, MODE_VERIFYDB, N_("verify database files"), NULL},
Run Code Online (Sandbox Code Playgroud)
所以rpm --verifydb
应该做你正在寻找的。