rpm 명령 실행이 되지 않는 경우, rpmdb 손상은 어떻게 복구하나요?
💡 요약 정리
- rpm 명령어 사용 시 특정 오류 메시지가 나타난다면 rpm 데이터베이스(rpmdb)가 손상된 경우입니다.
- 문제 해결을 위해
/var/lib/rpm디렉토리 내에 생성된__db*파일들을 제거한 후 rpmdb를 재생성해야 합니다. - 모든 명령어는 root 권한으로 실행해야 정상처리됩니다.
1. 오류 메시지 확인
다음과 같은 에러 메시지가 출력된다면, rpm 데이터베이스가 깨진 것입니다.
[root@localhost ~]# rpm -qa
rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages database in /var/lib/rpm
2. rpm 데이터베이스 복구 방법
Rpm database를 재생성하면 문제를 해결할 수 있습니다. 아래 단계를 순서대로 실행하세요.
① /var/lib/rpm 경로로 이동
[root@localhost ~]# cd /var/lib/rpm
② 디렉토리 목록 확인
[root@localhost rpm]# ls
Basenames __db.003 Installtid Provideversion Sha1header
Conflictname Dirnames Name Pubkeys Sigmd5
__db.001 Filemd5s Packages Requirename Triggername
__db.002 Group Providename Requireversion
③ __db* 파일 제거
다음 명령어를 입력하여 __db로 시작하는 모든 임시 파일을 삭제합니다.
[root@localhost rpm]# rm -rf __db*
주의: 삭제 전에 반드시 경로를 정확히 확인하고 실행해야 합니다. 잘못된 경로에서 실행 시 시스템 손상이 발생할 수 있습니다.
④ rpm 데이터베이스 재생성
삭제가 완료되면 재생성 명 령어를 실행합니다.
[root@localhost rpm]# rpm -vv --rebuilddb
해당 명령은 손상된 rpmdb를 다시 생성하여 rpm 명령어가 정상동작하도록 복구합니다.