yum update 실행시 멈추는 경우 해결 방법

yum update를 진행하다가 더이상 진행이 되지 않는 경우가 있다. 원인은 여러가지가 있을 수 있으나 내 경험상 아래의 경우가 대부분이다.
  a. update중 ssh 세션이 종료
  b. Ctrl+c 로 update 진행을 중단한 경우
  c. kill -9 등으로 프로세스를 강제 종료한 경우

위와 같은 경우 발생하는 문제는 rpmdb가 꼬이거나, lock 상태로 남아있어 더이상 진행이 되지 않으나 로그나, 출력에서는 아무런 결과가 보이지 않을 수 있다.

아래에 몇 가지 해결 방법을 적어 본다. 모두 root 유저로 작업해야 한다.

1. yum-utils사용
>yum clean
>yum-complete-transaction (명령이 없을 경우 "yum install yum-utils" 실행)
>yum update

위와 같은 방법으로 해도 update시 계속 같은 패키지에서 멈춘다면 rpmdb를 의심해 본다.

2. Rebuild RPMDB
우선 해당 rpm 파일을 찾는다. yum install 또는 update시 yum은 rpm파일을 로컬에 저장한 후 패키지를 설치한다. yum의 임시 파일 저장 디렉토리를 찾아간다. yum의 cache 디렉토리는 RHEL6의 경우 /var/cache/yum이다.

>cd /var/cache/yum
>find ./ -name PACKAGE-NAME.rpm
./base/packages/PACKAGE-NAME.rpm

rpm파일을 찾았다면 rpm 명령으로 설치를 시도해 본다.

>rpm -Uvh /var/chache/yum/base/packages/PACKAGE-NAME.rpm

설치중 "rpmdb: Lock table is out of available locker entries"라는 오류가 발생하면서 설치가 되지 않는다면 이전에 패키지를 설치하던 중 프로세스가 비정상 종료되어 db가 업데이트 되지 않아서 발생하는 문제다. 아래와 같이 db를 rebuild해준다.

>tar czvf rpm-backup.tar.gz /var/lib/rpm (기존 파일들을 백업)
>rm -rf /var/lib/rpm/__db.00* (db파일들 삭제)
>rpm --rebuilddb

시간이 좀 지나면 새 "__db.XXX"파일이 만들어진다. 다시 설치 실패한 패키지를 설치한다.

>rpm -Uvh /var/chache/yum/base/packages/PACKAGE-NAME.rpm

설치가 제대로 됐다면 다시 1번 과정을 시도해 본다.

댓글

이 블로그의 인기 게시물

FIX::장치가 더 이상 응답하지않거나 연결이 끊어졌습니다.

mysql DATETIME형의 기본값으로 현재시간 설정

FIX :: LACP bonding 구성시 트래픽이 한쪽 포트로 몰리는 현상