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

관련 정보