Debian·Ubuntu 계열 · 배포판 저장소 기준

APT 오류와 dpkg 상태를 구분합니다

목록 갱신, 패키지 파일, 설치 기록은 서로 다른 데이터입니다.

지우기 전에 어떤 데이터가 문제인지 확인합니다

dpkg --audit
apt-cache policy
apt-mark showhold
df -h /var /tmp
stat -c '%a %U:%G %n' /tmp
위치·명령역할
apt update저장소의 패키지 목록을 갱신합니다. 설치된 패키지 전체를 업그레이드하는 명령이 아닙니다.
/var/lib/apt/lists가져온 패키지 목록입니다.
/var/cache/apt/archives다운로드한 패키지 파일 캐시입니다.
/var/lib/dpkg설치 상태와 파일 목록 등의 데이터베이스입니다.

/var/lib/dpkg를 지운 뒤 빈 디렉터리나 status 파일을 만들면 설치 정보가 복구되는 것이 아닙니다. 복구에는 보관된 상태 파일과 설치 기록을 대조하는 작업이 필요합니다. status-old도 어느 시점의 백업인지 확인해야 합니다.

해시 오류, 잠금, 임시 파일 오류는 원인이 다릅니다

Hash Sum mismatch는 기대한 목록과 실제 받은 내용이 다르다는 뜻입니다. 미러 갱신 중의 불일치, 프록시 캐시, 전송 문제 등을 확인합니다. 서명과 해시 검사를 끄는 방법을 해결책으로 사용하지 않습니다. 다운로드 캐시 정리와 설치 데이터베이스 삭제는 전혀 다른 작업입니다.

잠금 오류라면 다른 패키지 관리 작업이 진행 중인지 확인합니다. 잠금 파일을 지워 동시에 실행되게 만드는 방식은 피합니다. 임시 파일 생성 오류라면 /tmp의 공간·inode·권한을 확인합니다. 보통 1777인 디렉터리를 777로 바꾸는 것은 동등한 복원이 아닙니다.

패키지 오류의 확인 대상
  1. 저장소 목록배포판 코드명, URL, 서명, 받은 목록을 확인합니다.
  2. 설치 작업잠금과 중단된 설정 작업을 확인합니다.
  3. 파일시스템공간, inode, 임시 디렉터리 권한을 확인합니다.

세 상자는 서로 다른 원인 범주입니다. 하나의 삭제 명령으로 모두 복구되는 단계가 아닙니다.

auto, manual, hold를 구분합니다

auto/manual은 패키지를 의존성으로 설치했는지 직접 필요로 하는지 관리하는 표시입니다. hold는 자동 설치·업그레이드·제거의 처리를 제한하는 별도 상태입니다. autoremove 전에 제거 목록을 검토해야 합니다.

Yocto 이미지에 Ubuntu 저장소를 넣는다고 Ubuntu 패키지 관리 환경이 되는 것은 아닙니다. libc, ABI, 패키지 형식, 의존성과 빌드 옵션이 맞아야 합니다. 사용하는 배포판 또는 Yocto 빌드에서 제공한 피드로 복구 절차를 잡습니다.

확인한 문서

Debian·Ubuntu 계열 · 배포판 저장소 기준