Ubuntu에서 `apt-Get Lock` 명령이 `/var/lib/dpkg/lock-frontend` 잠금 파일을 가져올 수 없는 문제를 해결하는 방법

이 메시지는 E: Could not get lock /var/lib/dpkg/lock-frontend다른 패키지 관리 프로세스가 APT에 필요한 잠금을 사용하고 있음을 의미합니다. 잠금은 패키지 변경 사항이 중복 작업되는 것을 방지합니다. 일반적으로 소프트웨어 업데이트 프로그램, 다른 터미널 또는 자동 업데이트가 이미 패키지를 설치하거나 구성하는 중에 발생합니다. 가장 안전한 해결 방법은 해당 작업을 확인하고 완료될 때까지 기다리는 것입니다. 잠금 파일을 삭제하는 것은 우선적으로 고려해야 할 사항이 아닙니다.

아래 명령어는 APT와 dpkg를 사용하는 Ubuntu 시스템에 적용됩니다. 바탕 화면 레이블과 자동 업데이트 시기는 Ubuntu 버전 및 구성에 따라 다를 수 있으므로, 자신의 시스템에서 실행되는 프로세스 출력을 기준으로 판단하십시오. 아래 링크된 Ubuntu 24.04 LTS 설명서에는 해당 명령어가 나와 있습니다. 사용 중인 버전의 설명서를 참조하면 동작 방식이 다를 수 있습니다.

잠금 오류가 알려주는 것과 알려주지 않는 것은 무엇일까요?

확인됨: dpkg dpkg는 패키지를 설치하고 관리하며, APT는 dpkg의 상위 수준 명령줄 프런트엔드입니다. 경로는 lock-frontend패키지 관리 작업을 조정하는 데 사용됩니다. 따라서 오류는 패키지 데이터베이스 손상이 아니라 명령 실행 시 발생한 잠금 충돌을 나타냅니다. Ubuntu의 dpkg 설명서에서 dpkg의 역할과 패키지 상태에 대한 설명을 확인할 수 있습니다.

시스템에 따라 다릅니다. 잠금 상태의 프로세스는 그래픽 업데이트 프로그램, 보조 프로그램 apt또는 apt-get명령줄, 소프트웨어 설치 프로그램, 자동 유지 관리 작업일 수 있습니다. 오류 메시지만으로 프로세스 이름을 추측하지 마십시오. 먼저 실행 중인 다른 패키지 관리자 창을 모두 닫고 컴퓨터에서 실행 중인 프로세스를 확인하십시오.

해당 메시지만으로는 확인할 수 없습니다. 메시지는 잠금 파일이 오래되었거나, 우분투가 멈췄거나, 패키지 데이터베이스가 손상되었다는 것을 증명하지 못합니다. 잠금 파일은 프로세스가 종료된 후에도 디스크에 남아 있을 수 있으며, 잠금 파일이 존재한다는 사실만으로는 해당 프로세스가 여전히 잠금을 소유하고 있다고 단정할 수 없습니다. 변경 사항을 적용하기 전에 프로세스가 실행 중인지 확인하십시오.

1단계: 이미 사용 중인 패키지 관리자가 있는지 확인합니다.

소프트웨어 업데이트 프로그램, 우분투 소프트웨어 또는 현재 소프트웨어를 설치, 업데이트 또는 제거하는 다른 터미널 창을 찾으세요. 업데이트가 진행 중인 경우 창을 열어둔 채로 완료될 때까지 기다리세요. 그런 다음 원래 명령을 다시 시도해 보세요.

소프트웨어 업데이트 창에서 업데이트가 설치 중이므로, 해당 패키지 설치 작업이 완료될 때까지 기다린 후 터미널 명령을 다시 시도하십시오.
소프트웨어 업데이트 프로그램에서 업데이트 설치가 진행 중인 것을 보여줍니다. 다른 패키지 작업을 시작하기 전에 업데이트가 완료될 때까지 기다리십시오.

그래픽 업데이트가 표시되지 않으면 프로세스 목록을 확인하십시오.

ps -eo pid,ppid,stat,etime,cmd | grep -E '[a]pt|[d]pkg|unattended'

apt, apt-get, dpkg, 또는 와 같은 명령어를 찾아보세요 unattended-upgrade. 일치하는 항목이 발견되더라도 이는 단서일 뿐, 해당 프로세스가 락 홀더임을 증명하는 것은 아닙니다. 검색 결과에는 관련 없는 명령어나 검사 자체도 포함될 수 있습니다. PID와 명령어를 기록해 둔 다음, 다음 단계에서 해당 프로세스를 검사하세요.

2단계: 잠금을 유지하고 있는 프로세스를 식별합니다.

fuser이 도구는 프로세스가 프런트엔드 잠금에 접근하고 있는지 확인하는 데 사용합니다 . 다른 사용자가 소유한 프로세스도 보고할 수 있도록 관리자 권한으로 실행하십시오.

sudo fuser -v /var/lib/dpkg/lock-frontend

다른 일반적인 패키지 관리자 잠금 경로도 확인할 수 있습니다.

sudo fuser -v /var/lib/dpkg/lock /var/cache/apt/archives/lock /var/lib/apt/lists/lock

fuser지정된 파일을 사용하는 프로세스 ID를 보고합니다. 자세한 정보 표시 모드에서는 프로세스 세부 정보가 포함됩니다. 프로세스 ID가 출력되면 프로세스 목록과 비교하고, 출력된 번호를 사용하여 해당 프로세스를 검사하십시오 ps -fp PID. PID접근 가능한 프로세스가 해당 경로를 사용하는 경우 도구는 결과를 반환하지 않을 수 있습니다. 이 결과는 유용하지만 이전 명령이 실패한 이유를 진단하는 것은 아닙니다. 출력 및 제한 사항에 대한 자세한 내용은 Ubuntu fuser 설명서를 참조하십시오.

터미널은 APT 및 dpkg 프로세스를 확인하고 fuser에게 어떤 프로세스가 프런트엔드 잠금에 접근하고 있는지 묻습니다.
apt 및 dpkg 프로세스를 확인하고 프런트엔드 잠금을 사용하여 프로세스를 식별하는 터미널 명령어입니다.

3단계: 기다리거나, 멈춘 것으로 확인된 작업만 중지합니다.

패키지 다운로드, 파일 압축 해제, 패키지 구성 또는 그래픽 업데이트 프로그램의 진행 상황 표시와 같은 프로세스가 진행 중인 경우, 해당 작업이 완료될 때까지 기다리십시오. 대용량 업데이트나 디스크 속도가 느린 경우 예상보다 시간이 오래 걸릴 수 있습니다. 작업이 완료되면 원래 apt-get명령을 다시 실행하십시오. 첫 번째 APT 명령이 실행되는 동안 다른 APT 명령을 시작해도 첫 번째 명령의 완료 시간이 빨라지지는 않습니다.

apt-get install 작업이 아직 패키지를 다운로드 중입니다. 진행 상황을 보면 현재 패키지 작업이 완료될 때까지 기다려야 합니다.
apt-get 패키지 설치 작업이 진행 중일 때 터미널에 표시되는 진행 상황 예시입니다. 패키지 이름과 출력 결과는 다를 수 있습니다.

작업이 멈춘 것처럼 보이면 출력, CPU 또는 디스크 활동, 경과 시간이 변하는지 확인하십시오. 모든 패키지 작업이 멈췄다는 것을 증명하는 단일 타임아웃은 없습니다. 해당 프로세스가 사용자가 직접 실행 중인 포그라운드 명령이고 안전하게 중단할 수 있다면 Ctrl+C해당 터미널에서 `reduced` 명령어를 사용하여 프로세스가 정상적으로 종료되도록 하십시오. 프로세스가 락을 점유하고 있다는 이유만으로 프로세스를 강제로 종료하지 마십시오.

최후의 수단으로, 프로세스가 실제로 응답하지 않는다는 것을 확인하고 정확한 PID를 식별했으며 패키지 구성을 중단하면 패키지가 미완료될 수 있다는 점을 이해한 경우, 정상적인 종료 신호를 보내십시오.

sudo kill -TERM PID

PID확인된 프로세스 ID로 바꾸십시오 . kill -9, killall dpkg, 또는 fuser -k와 같은 명령어를 일상적인 해결 방법으로 사용하지 마십시오. 강제 종료는 패키지 스크립트 실행을 중단시키거나 작업 복구에 시간이 걸릴 수 있습니다. 해당 작업이 직접 시작한 서비스가 아니라 자동 서비스인 경우, 익숙하지 않은 프로세스를 강제로 종료하기보다는 해당 서비스의 상태를 확인하거나 기다리십시오.

4단계: 이전 작업이 중단된 경우에만 패키지 구성을 복구합니다.

APT 또는 dpkg 프로세스가 남아 있지 않고 이전 설치 또는 업그레이드가 중단된 경우, dpkg에게 압축 해제된 패키지 구성을 완료하도록 요청한 다음 APT의 패키지 상태를 확인하십시오.

sudo dpkg --configure -a
sudo apt-get check
활성화된 패키지 작업이 더 이상 없는 것을 확인한 후, dpkg 구성 및 APT 종속성 검사를 실행할 수 있습니다.
중단된 작업 후 보류 중인 dpkg 구성을 완료하고 패키지 데이터베이스를 확인하기 위한 터미널 명령입니다.

프롬프트와 오류 메시지를 모두 읽으십시오. 첫 번째 명령은 패키지 구성 스크립트를 실행할 수 있으며, 시간이 걸리거나 질문이 나올 수 있습니다. apt-get check종속성 문제가 있는지 확인합니다. 종속성 문제가 보고되면, 옵션을 사용하기 전에 제안된 변경 사항을 검토하십시오 sudo apt-get -f install. 이 옵션은 종속성을 복구하려고 시도하며, 이를 위해 패키지를 설치하거나 제거할 수 있습니다. 이해할 수 없는 제거 작업은 승인하지 마십시오. Ubuntu apt-get 설명서에서 이 옵션 에 대한 설명을 확인할 수 check있습니다 --fix-broken.

잠금 오류에 대한 일반적인 오해

  • "잠금 파일이 있으니 삭제해야 할까요?" 아닙니다. 파일이 있다는 사실만으로는 프로세스가 잠금을 점유하고 있는지 알 수 없습니다. 프로세스가 실행 중인 상태에서 파일을 삭제해도 해당 프로세스가 중지되지 않으며, 다른 패키지 명령이 동일한 패키지 데이터베이스에 대해 실행될 수 있습니다. fuser대신 프로세스 목록을 확인하십시오.
  • "PID가 나타나지 않았으므로 데이터베이스가 손상되었습니다." 반드시 그런 것은 아닙니다. 소유자가 확인 사이에 종료되었거나, 이전 잠금이 해제되었거나, 오류가 다른 잠금 경로와 관련되었을 수 있습니다. 패키지 작업이 남아 있지 않은지 확인한 후 한 번 더 시도하십시오. 작업이 중단되었거나 패키지 오류로 인해 구성이 불완전한 경우에만 dpkg를 복구하십시오.
  • "모든 잠금 오류에는 다음이 필요합니다 dpkg --configure -a." 이 명령은 보류 중인 구성 작업을 처리하며, 활성 프로세스가 여전히 점유하고 있는 잠금을 해결하지는 않습니다. 먼저 해당 프로세스가 잠금을 해제할 때까지 기다리거나 안전하게 해결한 다음, 필요한 경우에만 복구 명령을 사용하십시오.
  • "잠금은 설정된 시간(분) 후에 항상 해제됩니다." 자동 업데이트 일정 및 작업 소요 시간은 릴리스, 설정, 네트워크 및 시스템에 따라 달라집니다. 타이머에 의존하지 말고 실제 진행 상황을 확인하십시오.

해결책이 효과가 있었는지 어떻게 알 수 있을까요?

잠금 보유자가 종료된 후 원래 명령을 다시 시도하십시오. 성공적으로 실행되면 잠금 메시지를 지나 요청된 패키지 작업을 완료할 수 있습니다. 작업 dpkg --configure -a이 완료되고 apt-get check종속성 문제가 없다고 보고되면 패키지 구성 및 종속성 검사 상태가 개선된 것입니다. 하지만 이는 관련 없는 저장소 또는 네트워크 문제가 모두 해결되었다는 것을 보장하지는 않습니다.

잠금 오류가 즉시 반환되면 정확한 잠금 경로, 해당 경로에 대한 출력, 일치하는 프로세스 명령 및 PID, 그리고 작업이 계속 진행 중인지 여부를 기록하십시오 . 이러한 세부 정보는 정상적인 경쟁 업데이트와 추가 문제 해결이 필요한 프로세스를 구분하는 데 도움이 됩니다. 프로세스를 식별하는 대신 sudo fuser -v파일을 제거하거나 잠금 파일을 삭제하지 마십시오 ./var/lib/dpkg

공식 참고 자료

댓글 남기기

Ubuntu에서 Cgroups를 사용하여 프로세스의 CPU 및 RAM 사용량을 제한하는 방법

Ubuntu에서 Cgroups를 사용하여 프로세스의 CPU 및 RAM 사용량을 제한하는 방법

Ubuntu에서 systemd cgroups를 사용하여 명령 또는 서비스의 CPU 시간과 메모리 사용량을 제한하세요. 일시적인 제한 범위, 영구적인 제한, 그리고 주요 장단점을 비교해 보세요.

Gooroom OS UI 요소를 영어로 번역하는 방법

Gooroom OS UI 요소를 영어로 번역하는 방법

언어 지원이 가능해지면 Gooroom OS 메뉴를 영어로 전환하세요. GNOME 설정 경로, Debian 로케일 대체 설정 및 문제 해결 점검을 따르세요.

Ubuntu에서 `apt-Get Lock` 명령이 `/var/lib/dpkg/lock-frontend` 잠금 파일을 가져올 수 없는 문제를 해결하는 방법

Ubuntu에서 `apt-Get Lock` 명령이 `/var/lib/dpkg/lock-frontend` 잠금 파일을 가져올 수 없는 문제를 해결하는 방법

Ubuntu에서 발생하는 apt-get lock 오류를 해결하는 방법을 알아보세요. 활성 패키지 프로세스를 확인하고, 안전하게 기다린 후, 업데이트가 중단된 경우에만 dpkg를 복구하면 됩니다.

명령줄을 사용하여 Debian 12에서 RAID 1 어레이를 구성하는 방법

명령줄을 사용하여 Debian 12에서 RAID 1 어레이를 구성하는 방법

mdadm을 사용하여 Debian 12에서 두 개의 디스크로 RAID 1 데이터 어레이를 설정하는 방법: 디스크 식별, 안전한 파티션 설정, 부트 어셈블리 구성, ext4 포맷 및 마운트 확인.

KontrolPack을 사용하여 네트워크를 통해 컴퓨터 연결/제어

KontrolPack을 사용하여 네트워크를 통해 컴퓨터 연결/제어

KontrolPack을 사용하여 네트워크의 컴퓨터를 손쉽게 제어하세요. 서로 다른 운영 체제를 사용하는 컴퓨터를 손쉽게 연결하고 관리하세요.

Actionaz로 키보드와 마우스 클릭 에뮬레이션

Actionaz로 키보드와 마우스 클릭 에뮬레이션

반복되는 작업을 자동으로 수행하고 싶으신가요? 버튼을 여러 번 수동으로 클릭하는 대신, 앱이 자동으로 실행되도록 하면 더 좋지 않을까요?

BBC iPlayer를 iPhone으로 다운로더

BBC iPlayer를 iPhone으로 다운로더

iDownloade는 BBC iPlayer 서비스에서 DRM 없는 콘텐츠를 다운로드할 수 있는 크로스 플랫폼 도구입니다. 두 영상 모두 .mov 형식으로 다운로드할 수 있습니다.

Thunderbird 3의 14가지 새로운 기능으로 여러분을 기쁘게 해드리겠습니다.

Thunderbird 3의 14가지 새로운 기능으로 여러분을 기쁘게 해드리겠습니다.

우리는 Outlook 2010의 기능을 매우 자세히 다루었지만 2010년 6월 이전에는 출시되지 않으므로 Thunderbird 3를 살펴볼 시간입니다.

FlightGear 비행 시뮬레이터를 무료로 다운로드하세요 [재밌게 즐기세요]

FlightGear 비행 시뮬레이터를 무료로 다운로드하세요 [재밌게 즐기세요]

누구나 가끔은 휴식이 필요합니다. 흥미로운 게임을 찾고 있다면 Flight Gear를 한번 플레이해 보세요. 무료 멀티 플랫폼 오픈소스 게임입니다.

MP3 진단: MP3 오디오 파일의 최대 50가지 문제 해결

MP3 진단: MP3 오디오 파일의 최대 50가지 문제 해결

MP3 Diags는 음악 오디오 컬렉션의 문제를 해결하는 최고의 도구입니다. MP3 파일에 태그를 지정하고, 누락된 앨범 커버 아트를 추가하고, VBR을 수정할 수 있습니다.