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

잠금 파일 /var/lib/dpkg/lock을 열 수 없음 오류 해결 방법

apt-get 패키지 관리자를 사용하다 보면 "잠금 파일 /var/lib/dpkg/lock을 열 수 없습니다(could not open lock file /var/lib/dpkg/lock)"라는 오류 메시지를 만날 수 있습니다. sudo를 붙여 업데이트 명령을 실행했는데도 곧바로 root 권한이 있는지 묻는 메시지가 뒤따르기 때문에 이 오류는 다소 혼란스럽게 느껴질 수 있습니다. 이 오류는 apt-get을 사용하는 거의 모든 작업에서 나타날 수 있으며, 다양한 버전의 Ubuntu가 설치된 데스크톱이나 노트북은 물론 Raspbian(Debian 계열)이 설치된 라즈베리 파이에서도 동일하게 발생할 수 있습니다.

다행히 해결 방법은 매우 간단합니다. root 권한 여부를 묻는 메시지는 무시하고 문제의 핵심으로 바로 들어가면 됩니다. 핵심 원인은 두 개의 프로세스가 동시에 잠긴 파일에 접근하려 할 때 발생하는 충돌입니다.

방법 1: sudo가 명령어 전체에 적용되도록 하기

sudo apt-get update && apt-get upgrade처럼 명령어를 실행하면 두 번째 프로세스에는 /var/lib/dpkg/lock 파일에 접근할 권한이 없기 때문에 이 오류가 발생할 수 있습니다.

잠금 파일 /var/lib/dpkg/lock을 열 수 없음 오류 해결 방법

대신 sudo apt-get update && sudo apt-get upgrade로 실행해 보세요. 이렇게만 해도 문제가 해결된다면, 원인은 단순히 두 번째 프로세스에 파일 접근 권한이 부족했던 것입니다. 다만 이 명령은 모든 패키지를 업데이트한 후 업그레이드하므로 승인 여부를 묻는 프롬프트가 표시될 수 있고, 완료까지 시간이 다소 걸릴 수 있습니다.

문제가 해결되었다면 더 이상 다른 조치가 필요하지 않습니다.

방법 2: /var/lib/dpkg/lock 잠금 파일 삭제하기

curl, wget처럼 파일을 직접 내려받는 명령어를 사용하는 경우, 특히 apt-get 대신 쓰이는 경우가 있는 Raspbian 환경이라면 해당 명령어 앞에도 sudo를 붙여야 할 수 있습니다. 순수 Debian, Xubuntu, Lubuntu, Linux Mint 등 데스크톱·노트북용 배포판을 사용한다면 크게 신경 쓸 필요는 없지만, 한 번쯤 시도해 볼 가치는 있습니다.

그래도 문제가 해결되지 않는다면, 업데이트를 실행하는 동안 다른 프로그램이 해당 파일에 접근하고 있는지 확인해야 합니다. sudo lsof /var/lib/dpkg/lock 명령으로 이 파일을 열고 있는 다른 프로세스가 있는지 확인해 보세요. 만약 어떤 프로그램이 파일을 열고 있다면 해당 응용 프로그램을 종료하면 됩니다.

참고로 이 파일을 열려면 읽기·쓰기 권한, 즉 root 권한이 필요하므로 해당 프로그램을 종료할 때도 root 권한이 필요합니다. GUI 데스크톱 환경을 사용 중이라면 작업 관리자(Task Manager)에서 해당 프로세스를 찾아 마우스 오른쪽 버튼으로 클릭한 뒤 종료할 수도 있습니다. 물론 명령줄에서 kill 또는 killall 명령을 사용하는 방법도 있습니다.

이후 apt-get 명령을 다시 실행해 변화가 있는지 확인해 보세요. 문제가 해결되었다면 더 이상 할 일이 없습니다. 그래도 문제가 지속된다면 잠금 파일 자체를 삭제하는 방법을 고려할 수 있습니다. 이 방법은 최후의 수단으로 봐야 하지만, 실제로 apt-get에 심각한 문제를 일으키는 경우는 드뭅니다. 다만 apt 시스템에 영향을 줄 수 있으므로 반드시 다른 방법을 모두 시도한 후에 사용하는 것이 좋습니다.

재부팅이 도움이 되기도 하지만, 상시 가동되는 서버나 Raspbian 기기를 사용 중이라면 재부팅이 어려울 수 있습니다. 이런 경우 sudo rm /var/lib/dpkg/lock && sudo rm /var/lib/apt/lists/lock 명령을 실행하여 apt가 참조하는 잠금 파일들을 제거하세요. root 권한으로 rm을 실행하는 것은 되돌릴 수 없으므로 파일 이름을 정확히 입력하는 데 각별히 주의해야 합니다.

다른 방법을 모두 시도한 후에 이 과정을 거쳤다면, 업데이트 명령을 다시 실행해 결과를 확인해 보세요. 잠금 파일이 이미 삭제되었으므로 더 이상 오류가 발생하지 않을 것이며, apt-get은 실행 과정에서 필요한 파일을 자동으로 다시 생성합니다.