소스에서 설치하기: 공식 배포판과 무결성 검증
Apache Airflow Official Documentation (in-repo snapshot) — Apache Software Foundation installation/installing-from-sources.rst (전체, L1-163)
이 모듈을 다 읽으면
- Airflow의 소스/sdist/whl 배포판 차이와 각각이 ASF 배포 정책에서 갖는 의미를 설명할 수 있다
- GPG 서명과 SHA512 체크섬으로 다운로드한 패키지의 무결성을 검증하는 절차를 설명할 수 있다
- 'not certified with a trusted signature' 경고가 왜 무해한지 설명할 수 있다
Airflow는 ASF 프로젝트로서 공식 다운로드 사이트에서 소스/sdist/whl 패키지를 제공하며, 이를 GPG 서명과 SHA512 체크섬으로 검증하는 절차를 상세히 안내한다. 이 모듈은 배포판의 종류, 검증 절차, 그리고 PyPI에서 받은 wheel 패키지를 사후 검증하는 스크립트를 다룬다.
공개된 배포판 종류
공식 다운로드 페이지는 특정 버전에 대해 여러 형태의 배포판을 제공한다: airflow 소스 패키지, airflow 메타 배포판의 sdist/whl, airflow-core 배포판의 sdist/whl, airflow-task-sdk 배포판의 sdist/whl. 이 소스 패키지들은 ASF의 공식 패키지이며, 소스 코드를 직접 빌드해 패키지의 출처가 저장소의 소스 코드와 일치함을 검증하려는 사용자를 위한 것이다.
sdist와 whl은 '편의 패키지(convenience packages)'로, 역시 같은 소스로부터 만들어졌으며 체크섬/서명 검증이 가능하다. 모든 배포판은 Official Apache Software Foundation Downloads (dlcdn.apache.org)에서 받을 수 있다. 소스로부터 직접 빌드하려면 소스 패키지 안에 포함된 `INSTALL` 파일의 안내를 따른다.
핵심 포인트
- 소스 패키지, 메타 배포판(sdist/whl), airflow-core 배포판, airflow-task-sdk 배포판이 각각 별도로 배포된다
- sdist/whl은 '편의 패키지'로 불리지만 소스 패키지와 마찬가지로 체크섬·서명 검증이 가능하다
- 소스 빌드 안내는 소스 패키지 안에 포함된 INSTALL 파일에 있다
GPG 서명 검증
무결성 검증을 위해 먼저 `downloads.apache.org/airflow/KEYS`에서 KEYS 파일과 해당 배포판의 .asc 서명 파일을 받는다. 미러가 아닌 메인 배포 디렉터리에서 받는 것이 권장된다.
gpg -i KEYS
이후 실제 패키지에 대해 서명을 검증한다.
gpg --verify apache-airflow-<version>-source.tar.gz.asc apache-airflow-<version>-source.tar.gz
검증 결과에 'Good signature from ...'이 출력되면 서명이 올바르다는 뜻이다. 이때 함께 뜨는 'WARNING: The key's User ID is not certified with a trusted signature!' 경고는 걱정할 필요가 없다 — 릴리스 매니저들이 사용하는 인증서 대부분이 자체 서명(self-signed)이기 때문에 뜨는 경고이며, 앞서 KEYS 페이지에서 해당 키 ID를 가져와 임포트했다면 이미 유효한 키임을 알고 있는 상태다.
핵심 포인트
- GPG 검증은 KEYS 파일 임포트 후 .asc 서명 파일로 gpg --verify를 실행하며, 'Good signature from ...'이 성공 표시다
- 'not certified with a trusted signature' 경고는 릴리스 매니저 인증서가 대부분 자체 서명이라 뜨는 정상적인 경고이며 무시해도 된다
SHA512 체크섬 검증과 PyPI 배포본 사후 검증
SHA512 체크섬 검증은 해당 `.sha512` 파일을 받아 아래처럼 실제 다운로드한 파일의 해시와 비교한다.
shasum -a 512 apache-airflow-<version>-source.tar.gz | diff - apache-airflow-<version>-source.tar.gz.sha512
diff 결과가 없으면(즉 두 값이 일치하면) 체크섬이 올바르다는 뜻이다.
PyPI에서 받은 `.whl` 패키지도 로컬로 다시 내려받아 서명/체크섬을 검증할 수 있다. 문서는 이를 위한 스크립트를 제공한다 — 핵심 흐름은 `pip download --no-deps`로 패키지를 임시 디렉터리에 받고, `downloads.apache.org`에서 해당 버전의 `.whl.asc`와 `.whl.sha512`를 curl로 함께 받아 동일한 절차로 GPG/SHA512 검증을 수행하는 것이다. 검증이 끝나면 임시 디렉터리는 삭제해도 된다.
핵심 포인트
- SHA512 검증은 shasum -a 512로 해시를 계산하고 diff로 .sha512 파일 내용과 비교해 출력이 없으면 통과다
- PyPI wheel도 pip download --no-deps로 별도 저장 후 downloads.apache.org의 .asc/.sha512 파일로 동일하게 검증할 수 있다