Ubuntu 24.04에서 APT 패키지 저장소 오류를 해결하는 방법

안녕하세요. VISION IDC 기술팀입니다.

Ubuntu 24.04에서 sudo apt update를 실행했을 때 DNS 조회 실패, 404 오류, Release 파일 누락, GPG 서명 오류, Signed-By 충돌 또는 패키지 목록 손상 메시지가 표시되면 저장소 주소만 무작정 변경하기보다 오류 문구와 저장소 파일을 먼저 확인해야 합니다.

이번 문서에서는 Ubuntu 24.04 LTS의 DEB822 저장소 형식인 /etc/apt/sources.list.d/ubuntu.sources를 기준으로 원인을 진단하고, 손상된 공식 저장소를 복구하며, 서드파티 저장소와 APT 캐시 문제를 안전하게 정리하는 방법을 단계별로 설명합니다.

적용 환경

운영체제 Ubuntu 24.04 LTS 및 24.04.x 포인트 릴리스
패키지 관리자 APT 2.8 계열
기본 저장소 형식 /etc/apt/sources.list.d/ubuntu.sources의 DEB822 형식
지원 상태 Ubuntu 24.04 LTS는 2029년 5월 31일까지 표준 보안 유지보수 대상입니다.

가장 먼저 확인할 항목

저장소 파일을 수정하기 전에 운영체제 코드명, CPU 아키텍처, 디스크 여유 공간, 시스템 시간과 실제 오류 메시지를 먼저 확인합니다. Ubuntu 24.04의 코드명은 noble이며, 저장소의 Suites 항목에도 일반적으로 noble이 포함되어야 합니다.

1. 운영체제 버전과 아키텍처 확인

cat /etc/os-release
dpkg --print-architecture

VERSION_CODENAME=noble인지 확인합니다. amd64 시스템과 arm64 시스템은 사용할 수 있는 기본 미러 주소가 다르므로 아키텍처 확인이 중요합니다.

2. 디스크 공간과 inode 확인

df -h / /var
df -i / /var

/var/lib/apt/lists/var/cache/apt에 새 파일을 저장할 공간이 없으면 저장소 목록 다운로드가 중간에 실패할 수 있습니다. 사용률이 100%에 가깝다면 저장소 설정을 변경하기 전에 디스크 공간 또는 inode 부족 문제부터 해결하십시오.

3. 오류 메시지 다시 확인

sudo apt update

출력에서 처음 나타나는 E:, W:, NO_PUBKEY, 404 Not Found, Temporary failure resolving, Hash Sum mismatch 또는 Signed-By 관련 문구를 확인합니다. 마지막 줄만 보지 말고 문제가 발생한 저장소 주소와 파일 이름을 함께 기록해 두는 것이 좋습니다.

Ubuntu 24.04 저장소 파일 구조 확인

Ubuntu 24.04부터 기본 Ubuntu 저장소 설정은 기존의 한 줄 형식인 /etc/apt/sources.list보다 DEB822 형식의 /etc/apt/sources.list.d/ubuntu.sources를 중심으로 관리됩니다. 서드파티 저장소는 .list 또는 .sources 파일로 추가될 수 있습니다.

현재 활성화된 저장소의 URI, 배포판 코드명과 서명 키 경로를 확인하려면 다음 명령을 실행합니다.

grep -RnsE '^(deb |Types:|URIs:|Suites:|Components:|Signed-By:|Enabled:)' \
  /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null

같은 저장소 URI와 같은 배포판 코드명이 여러 파일에 중복되어 있거나, Ubuntu 24.04 서버에 jammy, focal 또는 존재하지 않는 코드명이 혼합되어 있지 않은지 확인합니다.

APT 저장소 오류 진단 순서

1. 네트워크와 DNS 확인

ip route
getent hosts archive.ubuntu.com
getent hosts security.ubuntu.com

기본 경로가 없거나 getent가 IP 주소를 반환하지 않으면 APT 문제가 아니라 네트워크 또는 DNS 문제일 가능성이 높습니다. 이 경우 저장소 파일을 변경해도 해결되지 않습니다.

2. 시스템 시간 확인

timedatectl status

시스템 시간이 크게 틀리면 HTTPS 인증서 검증 오류 또는 Release file is not valid yet 오류가 발생할 수 있습니다. System clock synchronized: yes와 올바른 현재 시간을 확인하십시오.

3. 프록시 설정 확인

apt-config dump | grep -i proxy
env | grep -iE '^(http|https|no)_proxy='

이전에 설정한 프록시가 더 이상 존재하지 않거나 인증 정보가 만료되면 모든 저장소 연결이 실패할 수 있습니다. 관련 설정은 주로 /etc/apt/apt.conf 또는 /etc/apt/apt.conf.d/에 있습니다.

4. 저장소 파일 백업

저장소 파일을 수정하기 전 다음 명령으로 현재 설정을 /root 아래에 백업합니다.

sudo bash -c 'd=/root/apt-sources-backup-$(date +%Y%m%d-%H%M%S); mkdir -m 0700 "$d"; cp -a /etc/apt/sources.list.d "$d"/; [ ! -f /etc/apt/sources.list ] || cp -a /etc/apt/sources.list "$d"/; echo "$d"'

출력된 백업 경로를 기록해 두십시오. 복구 과정에서 문제가 생기면 해당 디렉터리의 파일을 원래 위치로 되돌릴 수 있습니다.

오류 유형별 해결 방법

Temporary failure resolving 오류

Temporary failure resolving 'archive.ubuntu.com'은 저장소 주소가 잘못된 경우보다 DNS 조회가 실패한 경우에 주로 발생합니다. 먼저 DNS 서비스 상태와 /etc/resolv.conf 연결 상태를 확인합니다.

systemctl status systemd-resolved --no-pager
ls -l /etc/resolv.conf
resolvectl status

Ubuntu 기본 환경에서 systemd-resolved가 비정상 상태라면 다음 명령으로 재시작한 뒤 다시 확인할 수 있습니다.

sudo systemctl restart systemd-resolved
getent hosts archive.ubuntu.com
sudo apt update

재부팅 후에도 반복된다면 Netplan 또는 클라우드 네트워크 설정에 올바른 DNS 서버를 지정해야 합니다. /etc/resolv.conf를 임의로 일반 파일로 바꾸는 방식은 다른 네트워크 관리 서비스와 충돌할 수 있으므로 장기 해결책으로 권장하지 않습니다.

404 Not Found 또는 Release 파일 누락 오류

404 Not Found 또는 The repository ... does not have a Release file은 저장소가 Ubuntu 24.04의 noble 배포판을 제공하지 않거나, 경로와 코드명이 잘못되었거나, 폐기된 PPA가 남아 있을 때 발생합니다.

오류 메시지에 표시된 도메인이나 배포판 코드를 검색해 저장소 파일을 찾습니다.

grep -Rns '문제가-발생한-저장소-도메인' /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null

서드파티 저장소가 Ubuntu 24.04를 지원하지 않는다면 파일을 임시 보관 위치로 이동해 비활성화합니다. 아래의 vendor.sources는 실제 오류 메시지에서 확인한 파일명으로 바꾸십시오.

sudo install -d -m 0700 /root/disabled-apt-sources
sudo mv /etc/apt/sources.list.d/vendor.sources /root/disabled-apt-sources/
sudo apt update

필요한 저장소라면 해당 소프트웨어 공급사의 공식 문서에서 Ubuntu 24.04용 저장소 경로를 확인한 후 다시 등록하십시오. Ubuntu 22.04용 jammy 저장소를 단순히 noble로 바꾸는 것은 공급사가 실제로 Noble 패키지를 제공할 때만 가능합니다.

NO_PUBKEY 또는 서명 검증 오류

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 오류는 저장소가 요구하는 키와 설정된 Signed-By 키링이 일치하지 않을 때 발생합니다.

먼저 해당 저장소가 참조하는 키 파일을 확인합니다.

grep -RnsE '^(URIs:|Signed-By:|deb )' /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null
ls -l /etc/apt/keyrings /usr/share/keyrings

서드파티 저장소의 키는 공급사의 공식 설치 문서에서 다시 받아 /etc/apt/keyrings/에 저장하고, 저장소 항목의 Signed-By가 그 파일을 가리키도록 수정합니다. 키 파일은 APT의 _apt 사용자가 읽을 수 있어야 합니다.

sudo install -d -m 0755 /etc/apt/keyrings
sudo chmod a+r /etc/apt/keyrings/vendor.gpg

공식 Ubuntu 저장소에서 서명 오류가 발생한다면 다음 키링 파일이 존재하는지 확인합니다. 파일이 누락되거나 손상된 경우에는 신뢰할 수 있는 Ubuntu 설치 미디어 또는 공식 패키지 소스에서 ubuntu-keyring 패키지를 복구해야 합니다.

ls -l /usr/share/keyrings/ubuntu-archive-keyring.gpg

Conflicting values set for option Signed-By 오류

같은 저장소 URI와 배포판 코드가 서로 다른 파일에 중복 등록되고 각 항목이 다른 키링을 지정하면 Conflicting values set for option Signed-By 오류가 발생합니다.

grep -RnsE '^(deb |URIs:|Suites:|Signed-By:)' /etc/apt/sources.list /etc/apt/sources.list.d 2>/dev/null

동일한 저장소를 정의한 .list.sources 파일이 동시에 존재하지 않는지 확인합니다. 공급사가 현재 권장하는 한 개의 저장소 항목만 남기고, 나머지 파일은 /root/disabled-apt-sources/로 이동한 후 sudo apt update를 다시 실행하십시오.

Hash Sum mismatch 또는 패키지 목록 손상

Hash Sum mismatch, 압축 해제 실패 또는 목록 파일 읽기 오류는 미러 동기화 지연, 프록시 캐시 문제 또는 로컬 목록 파일 손상 때문에 발생할 수 있습니다. 먼저 잠시 후 다시 시도하고, 반복되면 APT 목록 캐시를 초기화합니다.

sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt update

같은 미러에서 계속 발생하면 공식 메인 미러로 일시 전환하거나, 조직 내부 프록시가 오래된 패키지 목록을 캐시하고 있지 않은지 확인하십시오.

APT 또는 dpkg 잠금 오류

Could not get lock /var/lib/dpkg/lock-frontend 오류는 다른 APT 작업이나 자동 업데이트가 실행 중일 때 발생합니다. 잠금 파일부터 삭제하지 말고 실제 프로세스를 확인합니다.

ps -ef | grep -E '[a]pt|[d]pkg'
systemctl status apt-daily.service apt-daily-upgrade.service --no-pager
systemctl list-timers 'apt-daily*' --all

정상적인 업데이트가 진행 중이면 완료될 때까지 기다립니다. 비정상 종료 후 패키지 구성이 중단된 경우에는 다른 APT 프로세스가 없는 것을 확인한 뒤 다음 순서로 복구합니다.

sudo dpkg --configure -a
sudo apt --fix-broken install
sudo apt-get check

apt --fix-broken install은 패키지를 설치하거나 제거할 수 있으므로 실행 전에 제시되는 변경 내용을 반드시 검토하십시오.

자주 발생하는 APT 저장소 오류와 점검 방향
오류 또는 증상 주요 원인 우선 확인할 항목
Temporary failure resolving DNS 또는 네트워크 경로 문제 ip route, getent hosts, resolvectl status
404 Not Found, Release 파일 없음 잘못된 경로, 미지원 코드명, 종료된 PPA 오류가 발생한 .list 또는 .sources 파일
NO_PUBKEY, 서명 검증 실패 키 누락, 만료 또는 잘못된 Signed-By 공급사 공식 키와 키링 경로
Signed-By 값 충돌 동일 저장소 중복 등록 URI, Suites, Signed-By가 중복된 파일
Hash Sum mismatch 미러 동기화, 프록시 캐시, 목록 손상 APT 목록 초기화와 다른 미러 테스트
잠금 파일 오류 다른 APT 또는 자동 업데이트 실행 중 APT 프로세스와 apt-daily 서비스

공식 Ubuntu 저장소 복구

공식 저장소 파일이 삭제되었거나 내용이 크게 손상된 경우에만 이 절차를 사용합니다. 먼저 앞에서 안내한 방법으로 백업을 완료하고, 오류가 발생한 서드파티 저장소는 임시로 비활성화하십시오.

amd64 시스템의 기본 저장소 파일

dpkg --print-architecture 결과가 amd64일 때 다음 내용으로 ubuntu.sources를 작성할 수 있습니다.

sudo tee /etc/apt/sources.list.d/ubuntu.sources >/dev/null <<'EOF'
Types: deb
URIs: http://archive.ubuntu.com/ubuntu
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb
URIs: http://security.ubuntu.com/ubuntu
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF

arm64 시스템의 기본 저장소 파일

dpkg --print-architecture 결과가 arm64라면 일반적으로 Ubuntu Ports 저장소를 사용합니다.

sudo tee /etc/apt/sources.list.d/ubuntu.sources >/dev/null <<'EOF'
Types: deb
URIs: http://ports.ubuntu.com/ubuntu-ports
Suites: noble noble-updates noble-backports noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF

기존 /etc/apt/sources.list에 같은 공식 저장소가 중복 등록되어 있다면 백업 후 별도 보관 위치로 이동합니다.

sudo install -d -m 0700 /root/disabled-apt-sources
sudo mv /etc/apt/sources.list /root/disabled-apt-sources/ 2>/dev/null || true

이후 목록 캐시를 새로 내려받습니다.

sudo rm -rf /var/lib/apt/lists/*
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt update

복구 후 정상 작동 확인

저장소 목록 갱신이 끝났다면 패키지 캐시와 의존성 상태를 확인합니다.

sudo apt update
sudo apt-get check
apt-cache policy

정상 상태에서는 apt update가 치명적인 E: 오류 없이 완료되고, apt-get check가 해결되지 않은 의존성 문제를 보고하지 않아야 합니다. apt-cache policy에서는 noble, noble-updatesnoble-security 저장소가 표시되는지 확인합니다.

업그레이드 가능한 패키지 목록도 확인할 수 있습니다.

apt list --upgradable

서드파티 저장소를 다시 활성화할 때는 한 번에 하나씩 복원한 뒤 매번 sudo apt update를 실행하십시오. 이렇게 하면 어떤 저장소가 오류를 다시 발생시키는지 쉽게 확인할 수 있습니다.

재발 방지를 위한 운영 권장사항

  • 서드파티 저장소를 추가하기 전에 Ubuntu 24.04 noble 지원 여부를 확인합니다.
  • 저장소별 GPG 키는 /etc/apt/keyrings/에 분리하고 Signed-By로 연결합니다.
  • 같은 저장소를 .list.sources 형식으로 중복 등록하지 않습니다.
  • 운영체제 업그레이드 후에는 기존 배포판 코드명의 PPA가 남아 있지 않은지 확인합니다.
  • APT 오류가 발생했을 때 잠금 파일이나 키링을 먼저 삭제하지 말고 오류 원인과 실행 중인 프로세스를 확인합니다.
  • 저장소 파일을 변경하기 전에는 항상 /etc/apt/sources.list/etc/apt/sources.list.d/를 백업합니다.

원상복구 방법

문서의 백업 명령으로 생성한 디렉터리를 확인합니다.

sudo ls -ld /root/apt-sources-backup-*

아래 명령의 백업 경로는 실제 생성된 디렉터리명으로 바꾸십시오. 현재 설정을 별도 보관한 뒤 백업본을 복원합니다.

sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.after-repair
sudo cp -a /root/apt-sources-backup-YYYYMMDD-HHMMSS/sources.list.d /etc/apt/
sudo cp -a /root/apt-sources-backup-YYYYMMDD-HHMMSS/sources.list /etc/apt/ 2>/dev/null || true
sudo apt update

임시 비활성화한 특정 저장소만 복원하려면 파일을 원래 위치로 옮긴 후 목록을 다시 갱신합니다.

sudo mv /root/disabled-apt-sources/vendor.sources /etc/apt/sources.list.d/
sudo apt update

공식 참고자료

기관·프로젝트 문서 확인 내용 조회일
Ubuntu Ubuntu 24.04 LTS release notes 지원 기간과 DEB822 기반 ubuntu.sources 전환
Ubuntu Manpages sources.list(5) 한 줄 형식과 DEB822 형식, .list·.sources 파일 규칙
Ubuntu Manpages apt-secure(8) 저장소 서명 검증과 안전하지 않은 저장소 사용 제한
Ubuntu Manpages apt-get(8) update, clean, check 명령의 동작

자주 묻는 질문

Ubuntu 24.04에서도 /etc/apt/sources.list를 사용할 수 있나요?

APT는 기존 한 줄 형식의 /etc/apt/sources.list.list 파일도 지원합니다. 다만 Ubuntu 24.04 기본 설치는 /etc/apt/sources.list.d/ubuntu.sources의 DEB822 형식을 사용하므로 공식 저장소를 수정할 때는 이 파일을 먼저 확인하는 것이 좋습니다.

오류가 나는 PPA를 삭제해도 설치된 프로그램이 함께 삭제되나요?

저장소 파일을 비활성화하거나 이동해도 이미 설치된 패키지는 즉시 삭제되지 않습니다. 다만 해당 저장소에서 제공하던 업데이트를 더 이상 받지 못할 수 있으므로 공급사의 Ubuntu 24.04 지원 상태를 확인해야 합니다.

apt update와 apt upgrade는 같은 명령인가요?

apt update는 저장소에서 최신 패키지 목록을 내려받는 명령이고, apt upgrade는 갱신된 목록을 기준으로 설치된 패키지를 업그레이드합니다. 저장소 오류가 있다면 먼저 apt update를 정상화해야 합니다.

잠금 오류가 나면 lock 파일을 삭제해도 되나요?

실행 중인 APT 또는 dpkg 프로세스가 있는 상태에서 잠금 파일을 삭제하면 패키지 데이터베이스가 손상될 수 있습니다. 먼저 프로세스와 apt-daily 서비스 상태를 확인하고 정상 작업이 끝날 때까지 기다리는 것이 안전합니다.

GPG 오류를 trusted=yes로 우회해도 되나요?

권장하지 않습니다. 저장소 서명 검증을 약화하면 변조된 패키지를 신뢰할 위험이 있습니다. 저장소 공급사의 공식 키를 다시 설치하고 Signed-By 경로를 올바르게 수정해야 합니다.

마무리

Ubuntu 24.04의 APT 저장소 오류는 네트워크와 DNS, 잘못된 배포판 코드명, 종료된 서드파티 저장소, GPG 키 누락, 중복된 Signed-By 설정 또는 손상된 패키지 목록을 순서대로 확인하면 대부분 원인을 구분할 수 있습니다.

저장소 설정을 변경할 때는 먼저 백업하고, 보안 검증을 우회하는 옵션은 사용하지 않으며, 복구 후에는 반드시 sudo apt updatesudo apt-get check로 정상 상태를 확인하시기 바랍니다.

  • 0 사용자에게 유용한 정보 제공
이 답변이 도움이 되었나요?
« Back