1.시스템&인프라/Ubuntu

18. Ubuntu apt update 오류 해결 – Hash Sum mismatch 문제

쿼드큐브 2025. 6. 10. 15:18
728x90

apt update 명령어 실행 시 "해시 합이 맞지 않습니다(Hash Sum mismatch)" 오류가 발생하는 경우가 있습니다. 이 글에서는 Ubuntu에서 해당 오류의 원인과 해결 방법을 설명합니다.

 

Ubuntu apt update 오류 해결 – Hash Sum mismatch 문제

 

목차

1. 오류 발생 분석

2. 패키지 캐시 초기화 : 캐시가 손상되었거나 오래된 경우

3. 미러서버변경: 미러 서버의 동기화 문제로 최신 파일과 해시 정보가 맞지 않을 때

4. apt 강제 클리어 후 재시도

관련 글 링크

 

 

1. 오류 발생 분석

아래는 실제 발생한 오류의 주요 메시지입니다:

오류:15 http://kr.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages
  해시 합이 맞지 않습니다
  ...
  Hashes of expected file:
   - SHA256:a266f96a1b7a789a36a9a2b25c14847ccf5e577f986afc3efa7b48226c2fe9df
  Hashes of received file:
   - SHA256:66b585729405ee7a065e6a87ad3cb633a75799d4eb6c396dc6870c283898ceb5
  ...
E: Failed to fetch http://kr..... Hash Sum mismatch

apt update 명령어는 Ubuntu가 패키지 정보를 인터넷에서 받아오는 과정입니다. 이때 서버로부터 받은 파일의 무결성(SHA256, SHA1, MD5 등 해시 값)을 확인하는데,
받은 파일과 서버에서 예상한 값이 다르면 Hash Sum mismatch 오류가 발생합니다.

즉, 파일이 중간에 잘못되었거나 오래된 캐시가 남아있을 가능성이 있다는 뜻입니다.

 

2. 패키지 캐시 초기화 : 캐시가 손상되었거나 오래된 경우

Ubuntu 시스템은 패키지 정보를 빠르게 조회하기 위해 /var/lib/apt/lists/ 디렉토리에 각 저장소의 패키지 목록 파일(예: .gz, .xz)을 로컬에 저장해 둡니다.
이 정보는 sudo apt update 명령을 실행할 때 서버의 최신 패키지 목록과 비교되며, 변경 사항이 있을 경우 자동으로 갱신됩니다.

그러나 다음과 같은 상황에서는 이 캐시가 손상되거나 오래된 정보가 남아 문제가 발생할 수 있습니다:

  • 시스템이 예기치 않게 종료되었거나
  • 디스크에 오류가 있었던 경우
  • 패키지 목록을 다운로드 중 중단되었는데 캐시가 그대로 남은 경우

이 경우, 로컬 캐시에 저장된 예전 파일과 서버의 최신 파일 간 해시가 일치하지 않아 apt update 중 "해시 합이 맞지 않습니다" 같은 오류가 발생할 수 있습니다.

이 문제를 해결하려면 다음 명령어를 순서대로 실행하여 패키지 캐시를 초기화 합니다.

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

 

 

3. 미러 서버 변경 : 미러 서버의 동기화 문제로 최신 파일과 해시 정보가 맞지 않을 때

Ubuntu는 전 세계 사용자에게 빠르고 안정적인 패키지 다운로드를 제공하기 위해 다양한 미러 서버(mirror server)를 운영합니다.
예를 들어, 한국 사용자는 기본적으로 kr.archive.ubuntu.com 서버를 통해 패키지를 받게 되며, 이는 지역적으로 최적화된 서버입니다.

이러한 미러 서버는 주기적으로 Ubuntu 중앙 저장소(main archive)와 동기화되는데, 모든 데이터가 완벽하게 동시에 반영되지는 않습니다.

이 경우 apt update를 실행하면, 패키지 파일과 Release 파일 간의 해시가 일치하지 않아 다음과 같은 오류가 발생할 수 있습니다

 

기본 미러 서버가 문제를 일으키는 경우, 공식 중앙 서버나 다른 국가의 미러 서버로 변경하면 문제를 우회할 수 있습니다.

예를 들어, kr.archive.ubuntu.com 대신 archive.ubuntu.com을 사용하려면 다음 명령어를 실행하면 됩니다.

sudo sed -i 's|http://kr.archive.ubuntu.com/ubuntu|http://archive.ubuntu.com/ubuntu|g' /etc/apt/sources.list
sudo apt update

이 명령은 sources.list 파일 내의 모든 한국 미러 주소를 글로벌 공식 주소로 바꾸고, 그 후 패키지 목록을 다시 갱신합니다.

 

 

4. apt 강제 클리어 후 재시도 

패키지 정보가 손상되었거나 미러 서버와의 불일치로 인해 apt update 오류가 발생할 경우, 로컬 캐시를 강제로 초기화하고 패키지 정보를 새로 받아오는 것이 효과적인 해결 방법이 될 수 있습니다.

다음은 이를 위한 종합적인 명령어입니다:

sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update --allow-unauthenticated
  • sudo apt clean:
    로컬에 다운로드된 모든 .deb 패키지 캐시를 삭제합니다. (공간 확보에도 유용)
  • sudo rm -rf /var/lib/apt/lists/*:
    apt가 저장한 패키지 목록 파일들을 모두 제거하여, 다음 apt update 시 서버에서 최신 정보를 강제로 다시 받아오게 만듭니다.
  • sudo apt update --allow-unauthenticated:
    서명되지 않은 패키지라도 임시로 업데이트를 허용합니다. 주의: 이 옵션은 신뢰할 수 없는 패키지를 설치할 위험이 있으므로 반드시 임시로만 사용해야 하며, 이후 보안 점검이 필요합니다.

 

 


 

 

 

관련 글 링크

728x90