네, 맞습니다. 저는 사실 테스트 목적으로 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