본문으로 건너뛰기

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 명령어가 정상동작하도록 복구합니다.