Computer >> 컴퓨터 >  >> 문제 해결 >> Linux

리눅스 'could not open file /var/lib/dpkg/status' 오류 해결 방법

'/var/lib/dpkg/status 파일을 열 수 없음' 오류란?

루트(root) 권한으로 /var/lib/dpkg/ 디렉터리를 탐색하면서 파일을 정리하다 보면 "could not open file /var/lib/dpkg/status"와 같은 성가신 오류 메시지를 만날 수 있습니다. 리눅스 파일시스템 계층 표준(Linux Filesystem Hierarchy Standard)에 따르면 /var 디렉터리에 있는 대부분의 파일은 운영 중에 변경되는 임시 파일입니다. 하지만 이것이 웹 브라우저 캐시처럼 무조건 비워야 한다는 의미는 아닙니다.

대부분의 리눅스 사용자는 이 디렉터리를 직접 건드릴 일이 없기 때문에 다행히도 이 오류를 접할 일은 거의 없습니다. 또한 Fedora나 Arch처럼 apt-get을 사용하지 않는 배포판에서는 이 패키지 관리자에 특화된 문제이므로 애초에 발생하지 않습니다. 그래도 현재 이 오류로 어려움을 겪고 있다면 아래의 해결 방법을 참고해 보세요.

방법 1: 갑작스러운 오류 확인 후 재부팅

이 오류가 별다른 이유 없이 나타났다면 명령줄에 ls /var/lib/dpkg/status를 입력하고 출력 결과를 확인해 보세요.리눅스  could not open file /var/lib/dpkg/status  오류 해결 방법

그래픽 파일 관리자를 통해 해당 경로에 직접 접속해 눈으로 확인하는 것도 좋은 방법입니다.리눅스  could not open file /var/lib/dpkg/status  오류 해결 방법

출력 결과에 status 파일이 보이는지 확인하세요. 정상적인 경우에는 프롬프트로 돌아가기 전에 /var/lib/dpkg/status라는 한 줄만 표시됩니다. 파일이 존재한다면 큰 문제가 없을 가능성이 높습니다. 작업 내용을 저장하고 실행 중인 모든 프로그램을 종료한 뒤 재부팅하세요.

재부팅이 완료되면 터미널에서 sudo apt-get update를 입력하고 이어서 sudo apt-get upgrade를 실행한 후 화면 안내에 따라 진행하세요. 관리자 비밀번호를 묻는 메시지가 나타날 수 있지만, 업데이트가 끝나면 정상 상태로 돌아올 것입니다. 이 과정에서 이상한 오류가 발생하지 않는지 주의 깊게 살펴보세요.

만약 파일 자체가 존재하지 않았다면 다음 방법을 시도해야 합니다.

방법 2: /var/lib/dpkg/status 재생성

일부 사용자는 이 시점에서 중요한 데이터를 모두 백업한 후 리눅스를 재설치하기도 합니다. 물론 그 방법도 유효하지만, 그 전에 복구를 시도해 볼 가치가 충분합니다. /var/lib/dpkg/status의 백업 사본은 자동으로 생성되며, 오류 발생 후 오래 지나지 않았다면 백업본이 거의 최신 상태일 것입니다.

터미널에서 sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status를 실행해 보세요. 오류 없이 완료되었다면 문제가 해결되었는지 확인할 수 있습니다. 이 명령은 status 파일의 가장 최근 백업본을 복원하지만, 백업이 너무 오래되었다면 여전히 문제가 남아 있을 수 있습니다. 그래도 재시작한 후 sudo apt-get updatesudo apt-get upgrade를 차례로 실행해 어떤 의존성 오류가 나타나는지 확인해 보세요. 운이 좋다면 오류 없이 평소처럼 시스템을 계속 사용할 수 있습니다.

status 목록을 처음부터 다시 만드는 방법도 있습니다. sudo touch /var/lib/dpkg/status로 루트 권한의 빈 파일을 생성한 다음, 터미널에서 sudo apt-get install long-list를 실행해 보세요. 이 작업을 자동으로 처리해 주는 스크립트들도 있지만, 위 방법이 본질적으로 동일한 결과를 얻으면서도 검증되지 않은 오래된 스크립트를 실행하는 위험은 피할 수 있습니다. 다만 이 방법이 효과를 보려면 시스템에 설치된 패키지를 직접 기억해야 하며, 설치 과정에서 이를 확인하는 절차가 필요하다는 점에 유의하세요.

ls /var/backups/dpkg.status* 명령으로 활용할 수 있는 백업 파일 목록을 확인해 볼 수도 있습니다.

리눅스  could not open file /var/lib/dpkg/status  오류 해결 방법

명령 실행 후 표시되는 목록을 잘 살펴보세요. 압축되지 않은 파일이 보인다면 sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status를 실행해 문제가 해결되는지 확인해 보세요. 압축된 다른 백업 파일을 복사한 뒤 gunzip 명령으로 압축을 해제해서 사용할 수도 있습니다. 단, 오래된 백업본으로 갈수록 구식 파일을 복원하게 되어 의존성 오류를 유발할 위험이 커진다는 점을 반드시 기억하세요.