Haru Utils

PACKAGE RECOVERY

APT·DPKG 설치와 업데이트가 중단될 때

정상적인 단계적 업데이트와 실제 패키지 오류를 구분하고 잠금 소유자, 미구성 패키지와 의존성을 안전한 순서로 복구합니다.
apt errordpkg was interruptedheld broken packagesCould not get lockpackages kept back
환경Ubuntu 22.04·24.04 LTS · APT 2.x · dpkg
분류서비스
검토일2026-08-27
진행5단계 · 조회 우선

SAFE OPERATING BOUNDARY

중단·복구 기준부터 확인하세요

STOP CONDITIONS

여기서는 멈추세요

  • 잠금 소유 프로세스가 실제로 실행 중이면 종료하거나 lock 파일을 삭제하지 않습니다.
  • 시뮬레이션이 핵심 패키지 제거·배포판 변경·예상하지 못한 다운그레이드를 제안하면 중단합니다.
ROLLBACK

복구 기준

패키지 변경은 단일 파일 복원으로 완전히 되돌릴 수 없습니다. 작업 전 스냅샷과 apt 로그를 확보하고, 예상하지 못한 제거가 시작되면 추가 명령을 멈춥니다.

ESCALATION PACK

담당자에게 전달할 자료

  • apt·dpkg 원문 오류와 실패한 패키지 이름
  • dpkg --audit, apt-get -s 결과와 /var/log/apt/term.log의 관련 구간
  • 외부 저장소 목록과 변경된 패키지의 버전 정보
공식 문서와 읽기 전용 진단 명령을 우선 검토했습니다. 실제 서버에서는 설치된 버전의 --help와 man을 함께 확인하세요.

BEFORE YOU START

이런 증상에서 시작합니다

  • dpkg was interrupted
  • Could not get lock /var/lib/dpkg/lock-frontend
  • You have held broken packages
  • 업데이트 뒤 패키지가 미구성 상태로 남음

CHECK THE BRANCH

놓치기 쉬운 원인 분기

01

packages kept back만 표시

Ubuntu의 단계적 업데이트일 수 있으므로 오류로 단정하거나 개별 패키지를 강제로 설치하지 않고 apt policy와 제안 변경을 확인합니다.

02

잠금 프로세스가 실행 중

apt-daily나 다른 관리 작업이 정상 실행 중이면 완료를 기다립니다. lock 파일 자체를 삭제하면 패키지 상태를 손상할 수 있습니다.

03

서명·저장소 오류

의존성 복구보다 시간, DNS, 저장소 URL과 신뢰 가능한 서명 설정을 먼저 확인하며 검증 우회 옵션은 사용하지 않습니다.

FOLLOW THE FLOW

순서대로 확인하기

1
조회시스템을 변경하지 않는 확인 단계

용량·시간·저장소 기본 상태 확인

패키지 복구 전에 /var와 /boot 여유 공간, 시스템 시간, 활성 저장소를 확인합니다.

주요 파일시스템 용량
df -hT / /var /boot
시스템 시간
timedatectl status
패키지 우선순위
apt-cache policy
결과 읽기

No space left, 인증서 시각 오류, 잘못된 외부 저장소가 있으면 dpkg 복구보다 먼저 해결합니다.

다음 판단

기본 상태가 정상이면 현재 잠금 소유자를 확인합니다.

2
조회시스템을 변경하지 않는 확인 단계

잠금 파일이 아니라 잠금 소유자 확인

lock 파일을 지우지 않고 어떤 프로세스가 패키지 관리 작업을 수행 중인지 확인합니다.

dpkg 잠금 소유자
sudo fuser -v /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock 2>/dev/null
자동 업데이트 상태
systemctl status apt-daily.service apt-daily-upgrade.service --no-pager -l
결과 읽기

PID가 있고 작업 로그가 진행 중이면 중복 실행하지 않습니다. 프로세스가 없는데 오류가 남으면 패키지 상태를 점검합니다.

다음 판단

정상 작업은 기다리고, 중단된 상태만 다음 단계로 이동합니다.

3
조회시스템을 변경하지 않는 확인 단계

미구성·보류 패키지 확인

패키지를 변경하지 않는 조회 명령으로 불완전 상태와 보류 이유를 확인합니다.

dpkg 감사
sudo dpkg --audit
명시적으로 보류된 패키지
apt-mark showhold
업그레이드 후보
apt list --upgradable 2>/dev/null
결과 읽기

dpkg --audit 결과는 미구성·부분 설치 상태를, showhold 결과는 관리자가 보류한 패키지를 뜻합니다.

다음 판단

오류 패키지와 최초 실패 메시지를 기록한 뒤 복구 작업을 시뮬레이션합니다.

4
주의서버 부하나 권한을 고려할 단계

의존성 복구 결과를 시뮬레이션

실제 설치 전에 apt가 설치·제거·다운그레이드하려는 항목을 확인합니다.

복구 시뮬레이션
sudo apt-get -s --fix-broken install
최근 APT 작업 로그
sudo tail -n 120 /var/log/apt/term.log
결과 읽기

핵심 패키지 제거, 예상하지 못한 배포판 변경이나 대량 다운그레이드가 보이면 실행하지 않습니다.

다음 판단

제안 변경이 장애 패키지의 구성 완료 범위인지 승인받습니다.

5
변경데이터·서비스 상태가 달라질 수 있는 단계

중단된 구성을 완료하고 재검증

다른 패키지 관리 프로세스가 없고 시뮬레이션 결과를 확인한 경우에만 실행합니다.

변경 단계입니다. 실행 전 대상 이름과 경로, 서비스 중단 영향, 복구 방법을 다시 확인하세요.
dpkg 상태 메타데이터 보관
sudo cp -a /var/lib/dpkg/status /root/dpkg-status.before-repair
이 파일만으로 설치 파일 전체를 복구할 수 있는 것은 아닙니다.
미완료 구성 재개
sudo dpkg --configure -a
깨진 의존성 복구
sudo apt --fix-broken install
저장소 색인 갱신
sudo apt update
잔여 오류 확인
sudo dpkg --audit
결과 읽기

명령이 오류 없이 끝나고 dpkg --audit가 비어 있으며 원래 설치 작업이 정상 동작해야 합니다.

다음 판단

같은 패키지에서 재실패하면 maintainer script와 외부 저장소를 패키지 담당자에게 전달합니다.

PRIMARY REFERENCES

공식 문서

배포판과 버전에 따라 옵션·로그 위치가 다를 수 있습니다. 실행 전 서버의 --help와 로컬 매뉴얼을 함께 확인하세요.

도구 빠른 검색

최근 사용한 도구를 다시 열거나, 이름과 기능으로 검색하세요.

검색어와 도구의 입력·결과는 저장하지 않습니다.

↑↓ 이동 · Enter 열기 · Esc 닫기