yum 오류: rpmdb 열기 실패

yum 오류: rpmdb 열기 실패

실행하려고 하는데 yum update실행 시 다음 오류가 발생합니다.

rpmdb: PANIC: fatal region error detected; run recovery
error: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

페이지를 확인해보니이와 같이하나는 실행 중이지만 yum clean all동일한 오류가 발생합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

이것이 내 문제를 해결하는 방법입니다.

rpm 데이터베이스를 정리하면 이 문제를 해결할 수 있습니다. 하지만 먼저 위험을 최소화하려면 다음 명령을 /var/lib/rpm/사용하여 파일의 백업을 생성하십시오.cp

mkdir /root/backups.rpm.mm_dd_yyyy/
cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/

문제를 해결하려면 다음을 시도해 보세요.

# rm -f /var/lib/rpm/__db*
# db_verify /var/lib/rpm/Packages
# rpm --rebuilddb
# yum clean all

마지막으로 다음 yum 명령을 사용하여 오류가 사라졌는지 확인합니다.

# yum update

답변2

내가 해야 할 일은 ".lock" 확장자를 가진 두 개의 파일과 "__db"로 시작하는 세 개의 파일을 삭제하는 것뿐이었습니다.

# rm /var/lib/rpm/.dbenv.lock
# rm /var/lib/rpm/.rpm.lock
# rm /var/lib/rpm/__db*

그런 다음 yum update작동했습니다.

답변3

Alex에게 감사드립니다. 귀하의 답변은 제가 수행해야 했던 한 가지 작은 변경 사항을 제외하고는 저에게 효과적이었습니다.

rm -f /var/lib/rpm/__db*

반환 오류

rm: cannot remove `/var/lib/rpm/__db.001': Is a directory
rm: cannot remove `/var/lib/rpm/__db.002': Is a directory
rm: cannot remove `/var/lib/rpm/__db.004': Is a directory

그래서 나는 반복해야했다

rm -rf /var/lib/rpm/__db*

답변4

위의 방법을 시도했지만 성공하지 못했습니다.

다음은 잘 작동합니다

# cd /var/lib
# tar -zcvf /var/preserve/rpmdb-$(date +%Y-%m-%d_%H-%M-%S).tar.gz rpm

참고: RPM 데이터베이스를 복원하는 데 문제가 있는 경우 이 tar 백업을 사용할 수 있습니다.

패키지 파일의 무결성을 확인하십시오.

# cd /var/lib/rpm
# rm -f __db*      # to avoid stale locks
# /usr/lib/rpm/rpmdb_verify Packages

# mv Packages Packages.orig
# /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages


# rpm -vv --rebuilddb

RPM 데이터베이스를 다시 확인하십시오.

# cd /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify Packages

관련 정보