웹사이트 검색

Debian에서 apt-get 업그레이드 중 404 Not Found 오류를 해결하는 방법


업그레이드 중에 발생하는 “404 Not Found” 오류는 시스템이 더 이상 존재하지 않거나 이동된 저장소 소스에서 패키지를 다운로드하려고 할 때 발생합니다. 이러한 현상은 일반적으로 수명이 종료되어 아카이브 서버로 패키지가 이전된 오래된 Debian 릴리스에서 발생합니다.

Debian은 엄격한 릴리스 주기를 유지하기 때문에, 오래된 버전은 결국 활성 미러에서 전용 아카이브 저장소로 이동합니다. 이때 기존 저장소 구성은 오래되어 패키지 관리자 작업이 실패하게 됩니다.

업그레이드 중 404 오류 이해하기

apt-get update 또는 apt-get upgrade를 실행하면 시스템은 /etc/apt/sources.list에서 소스 목록을 읽고 거기에 지정된 URL에서 패키지 정보를 가져오려고 시도합니다. 해당 URL이 이동되었거나 제거된 저장소를 가리키면 404 오류가 발생합니다.

해결 방법은 올바른 저장소 위치를 가리키도록 소스 목록을 업데이트하는 것입니다. 서로 다른 Debian 버전은 서로 다른 저장소 URL을 필요로 하기 때문에, 먼저 현재 버전을 확인한 후 이에 맞게 구성을 수정할 것입니다.

Debian 버전 확인

변경을 하기 전에 사용 중인 Debian 버전을 확인해야 합니다.

lsb_release -a

위 명령어는 릴리스 번호와 코드명을 포함하여 배포 정보를 표시합니다.

  • Bookworm → 데비안 12
  • 불스아이 → 데비안 11
  • 버스터 → 데비안 10

다음 단계에서 필요하므로 자신의 암호명을 기록해 두세요.

소스 파일 구성 백업

시스템 파일을 수정할 것이므로, 백업을 만들어 두면 필요할 때 원래 구성을 복원할 수 있습니다.

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

이 명령은 동일한 디렉토리에 소스 목록의 복사본을 생성합니다. 만약 문제가 발생하면 위의 명령에서 소스와 대상을 바꿔 복원할 수 있습니다.

저장소 소스 업데이트

다음으로, 올바른 저장소를 가리키도록 소스 목록을 편집해야 합니다. 지원이 종료된 이전 Debian 버전의 경우 아카이브 서버로 전환해야 합니다.

텍스트 편집기로 파일을 엽니다:

sudo nano /etc/apt/sources.list

지원 종료된 Debian 버전용

만약 사용 중인 Debian 버전이 더 이상 지원되지 않는 경우(예: Jessie, Stretch 또는 그 이전 버전), 파일 내용을 다음과 같이 교체하세요:

deb http://archive.debian.org/debian/ CODENAME main contrib non-free
deb http://archive.debian.org/debian-security/ CODENAME/updates main contrib non-free

CODENAME을 Debian 코드명으로 바꾸세요(예: Debian 9의 경우 stretch).

현재 지원되는 버전용

만약 Debian 버전이 아직 지원되지만 404 오류(미러 문제)가 발생한다면, 대신 메인 Debian 저장소를 사용하세요:

deb http://deb.debian.org/debian/ CODENAME main contrib non-free
deb http://deb.debian.org/debian/ CODENAME-updates main contrib non-free
deb http://security.debian.org/debian-security CODENAME-security main contrib non-free

당신의 버전으로 CODENAME을 바꾸세요:

  • Debian 12 → 북웜
  • Debian 11 → 불아이
  • Debian 10 → 버스터

이 변경 사항을 마친 후, Ctrl+O를 눌러 파일을 저장하고, Enter를 누른 뒤 Ctrl+X로 종료하세요.

아카이브 저장소 검증 처리

지원 종료된 Debian 버전의 아카이브 저장소는 보안 업데이트를 받지 않으므로, 해당 릴리스 파일은 더 이상 유효한 키로 서명되지 않습니다. 만료된 서명으로 인해 apt 명령이 실패하지 않도록 하려면, 이러한 저장소에 대한 검증 확인을 비활성화해야 합니다.

다음 구성 파일을 열거나 생성하십시오:

sudo nano /etc/apt/apt.conf.d/99allow-unauthenticated

이 한 줄을 추가하세요:

Acquire::Check-Valid-Until "false";

이 설정은 apt에게 릴리스 파일의 유효 기간을 무시하도록 지시하며, 더 이상 업데이트를 받지 않는 아카이브된 저장소에 필요합니다.

패키지 정보 업데이트 중

이제 저장소 소스가 올바르게 구성되었으므로 패키지 목록을 업데이트하세요. 그러면 새로 구성된 저장소에서 최신 패키지 정보를 가져옵니다. 모든 설정이 올바르게 되어 있다면 404 오류 없이 완료될 것입니다.

sudo apt-get update

패키지 목록이 업데이트되면, 설치된 패키지를 업그레이드할 수 있으며, 이는 현재 시스템에 사용할 수 있는 업데이트를 다운로드하고 설치합니다. 보관 버전의 경우, 더 이상 업데이트를 받지 않기 때문에 업그레이드되는 패키지가 거의 없거나 없을 수 있습니다.

sudo apt-get upgrade

배포판 업그레이드 고려

404 오류를 수정하면 현재 시스템이 작동하도록 할 수 있지만, 수명이 종료된 Debian 버전을 사용하면 더 이상 보안 업데이트를 받을 수 없어, 운영 환경이나 인터넷에 노출된 환경에서는 상당한 위험을 초래합니다.

현재 지원되는 Debian 버전으로 업그레이드하는 것을 고려해야 합니다.

sudo apt-get dist-upgrade

하지만 주요 Debian 버전 간 업그레이드는 신중한 계획이 필요하며, 기존 설정이나 설치된 소프트웨어가 손상될 수 있으므로 임의로 수행해서는 안 됩니다. 주요 업그레이드를 시도하기 전에 목표 버전의 공식 Debian 릴리스 노트를 참고하세요.

요약

apt-get upgrade 중 발생하는 404 오류는 소스 구성에 있는 오래된 저장소 URL에서 비롯됩니다. 사용 중인 Debian 버전을 확인하고, 소스 목록을 적절한 저장소로 업데이트하며, 검증 설정을 조정하면 패키지 관리 기능을 복원할 수 있습니다.

지원되지 않는 버전을 사용하는 것은 보안상 위험이 있으므로, 최신 Debian 버전으로 업그레이드하는 계획을 세우는 것이 권장되는 장기적인 해결책입니다.