Watch at Ease세상을 읽고, 일상의 답을 찾다.

기술 · 실용 가이드

APT “Could not get lock”? process를 중지하기 전에 package transaction을 증명하세요

lock은 transaction을 보호합니다. holder와 progress를 확인하고 bounded wait 또는 graceful stop을 선택하며 lock file을 삭제하지 마세요.

APT/dpkg lock owner 도식
오리지널 일러스트: lock, owner, phase. Watch at Ease

lock은 transaction을 보호합니다. holder와 progress를 확인하고 bounded wait 또는 graceful stop을 선택하며 lock file을 삭제하지 마세요.

frontend lock은 dpkg access를 조정합니다. PID는 holder evidence이지 kill 허가가 아닙니다.

1. error와 lock 보존

output, exit, path, PID, command를 저장하고 서로 다른 lock을 혼동하지 않습니다.

pathname unlink는 open object를 닫지 않아 second writer를 만들 수 있습니다.

2. holder와 phase 증명

PID, parent, start, command와 updater/apt/dpkg/cloud-init owner를 확인합니다.

logs, children, open files, CPU/I/O로 progress를 관찰합니다.

3. wait 또는 approved stop

active work는 bounded wait하고 fixed sleep을 피합니다.

stuck이고 policy가 허용할 때 graceful stop 후 exit를 기다립니다.

4. package state audit

interruption 뒤 dpkg --audit와 logs로 pending state를 확인합니다.

dpkg --configure -a는 evidence가 있을 때만 사용합니다.

5. original action 재시험

original APT action을 다시 실행해 lock, result, exit 0을 확인합니다.

CI는 updater와 실제 조건을 조정하고 evidence를 기록합니다.

Safe recovery path
오리지널 일러스트: wait/stop, audit, verify. Watch at Ease