본문 바로가기
Linux

Ubuntu 24.04 apt 의존성 오류 해결: held broken packages 안전 점검 순서

by 바른정보블로그 2026. 10. 1.
SMALL

Ubuntu 터미널과 apt 패키지 의존성 연결을 표현한 일러스트

확인 기준: Ubuntu 24.04 Noble, 2026년 10월 1일

Ubuntu에서 패키지를 설치하거나 업데이트할 때 “unmet dependencies” 또는 “held broken packages”가 나오면 강제 설치보다 상태 진단이 먼저입니다. 실제로 깨진 의존성과 보류(hold)된 패키지, 저장소 후보 버전을 분리해 확인하세요. 아래 명령의 의미는 Ubuntu 24.04 공식 APT 매뉴얼을 기준으로 정리했습니다. 기기에서 오류를 직접 재현했다고 주장하지 않습니다.

3줄 결론

① apt-get update와 apt-get check로 목록과 의존성 상태를 확인합니다.
② apt-mark showhold, apt-cache policy 패키지명으로 실제 보류와 후보 버전을 구분합니다.
③ sudo apt-get -s --no-remove -f install의 예상 결과를 검토한 뒤에만 복구합니다.

명령별 역할과 확인표

목적 명령 확인할 내용
패키지 목록 갱신 sudo apt-get update 저장소 오류와 다운로드 실패
의존성 진단 sudo apt-get check 문제 패키지·요구 버전
보류 확인 apt-mark showhold 실제 hold 상태 패키지
후보 확인 apt-cache policy 패키지명 Installed, Candidate, 저장소
모의 복구 sudo apt-get -s --no-remove -f install 설치·설정·제거 예상 작업

터미널에서 안전하게 확인하는 6단계

  1. 터미널을 열거나 SSH 셸에 접속합니다. 서버와 데스크톱 모두 같은 APT 명령을 사용하지만 작업 전 중요한 설정·데이터의 백업을 확인하세요.
  2. sudo apt-get update를 실행해 설정된 소스의 패키지 인덱스를 갱신합니다. 저장소 접근이 실패한다면 다음 설치보다 해당 오류를 먼저 해결합니다.
  3. sudo apt-get check로 깨진 의존성을 진단하고 오류의 패키지 이름과 요구 버전을 적어 둡니다. check는 캐시를 갱신하고 의존성을 검사합니다.
  4. apt-mark showhold로 실제 보류 목록을 확인합니다. “held broken packages”라는 문구만으로 hold가 있다는 뜻은 아닙니다. apt-cache policy 패키지명으로 설치·후보 버전을, apt-cache depends 패키지명으로 의존 관계를 조회합니다. apt-cache는 조회 도구입니다.
  5. sudo apt-get -s --no-remove -f install로 예상 작업을 읽습니다. -s는 실제 변경을 하지 않고 --no-remove는 제거가 필요할 때 중단합니다. 출력의 Inst, Conf, Remv와 핵심 패키지명을 꼭 살펴보세요.
  6. 예상치 못한 제거가 없고 의미를 이해했을 때에만 sudo apt-get --no-remove -f install을 실행합니다. 실제 hold가 원인임을 확인했을 때만 sudo apt-mark unhold 패키지명을 고려하고, 정책상 다시 보류해야 한다면 sudo apt-mark hold 패키지명으로 되돌립니다.

주의사항

--allow-downgrades, --allow-remove-essential, --allow-change-held-packages, --force-yes는 시스템 손상 가능성이 있어 공식 문서에서도 경고합니다. 검색 결과의 강제 옵션을 무심코 복사하지 마세요. full-upgrade는 필요한 경우 기존 패키지를 제거할 수 있으므로 첫 복구 명령으로 쓰지 않습니다. 회사·서버가 의도적으로 hold한 패키지는 담당자와 확인해야 합니다.

해결되지 않을 때

모의 실행이 제거를 요구하거나 후보 버전이 없으면 저장소 설정, 배포판 버전과 타사 저장소 충돌을 조사하고 변경을 멈추세요. 저장 공간 부족이라면 Linux df·du 용량 점검을 먼저 보세요. 패키지 복구 후 서비스가 시작되지 않으면 Ubuntu systemctl·journalctl 로그 확인에서 유닛 로그를 확인합니다. 오류 출력은 개인정보를 가린 뒤 지원 담당자에게 공유하세요.

FAQ

1. held broken packages는 항상 실제 hold인가요?

아닙니다. apt-mark showhold로 확인하고 목록이 비어 있다면 후보 버전과 의존 관계를 점검하세요.

2. apt clean으로 의존성 오류가 해결되나요?

clean은 내려받은 패키지 캐시를 비웁니다. 깨진 의존성의 직접 진단·복구 명령은 아닙니다.

3. -f install은 무조건 안전한가요?

아닙니다. APT가 해결안을 계산하지만 설치·제거 대상은 환경에 따라 다릅니다. 모의 실행을 읽고 불명확하면 중단하세요.

Ubuntu 공식 출처

LIST

댓글