LabHub
배우기 러닝패스 코스

パッケージ管理

オフライン搬入バンドルを作る

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

패키지 하나와 그 의존성 전체를 "반입 번들" 로 묶고, 체크섬 매니페스트로 검증한 뒤, 그 번들만으로 설치를 재현합니다. 폐쇄망 반입 절차의 축소판입니다.

왜 중요한가

폐쇄망에서 가장 흔한 실패는 "받아 갔는데 의존성이 모자라서 다시 나와야 하는 것" 입니다. 반입 심의가 하루에 한 번뿐인 조직에서는 왕복 한 번이 하루입니다. 그래서 숙련자는 바깥에서 의존성 그래프를 통째로 푼 결과를 들고 들어갑니다. 그리고 매체를 통과한 파일이 온전한지 확인할 방법이 필요합니다 — 체크섬은 전송 중 손상을 잡고, 서명은 출처를 보증합니다. 이 실습은 그 절차의 뼈대를 손에 익힙니다.

단계

  1. /root/offline 디렉터리를 만들고, cowsay 를 설치할 때 받아야 할 파일들의 URI 목록을 /root/offline/uris.txt 로 저장하세요. (실제로 설치하면 안 됩니다.)
  2. cowsay 와 그 의존성을 내려받기만 하고, 받은 .deb 파일을 /root/offline/pool/ 로 모으세요. 최소 2개 이상이어야 합니다.
  3. /root/offline/pool 안의 모든 .deb 에 대한 SHA-256 매니페스트를 /root/offline/manifest.sha256 으로 만드세요.
  4. 그 매니페스트로 검증을 수행하고 결과를 /root/offline/verify.txt 로 저장하세요. 모든 줄이 정상(OK)이어야 합니다.
  5. /root/offline/pool 을 저장소로 만들기 위해 PackagesPackages.gz 를 생성하세요.
  6. /etc/apt/sources.list.d/labhub-airgap.list 로 이 저장소를 등록하고 색인을 갱신하세요.
  7. cowsay재설치해서 반입분으로도 설치가 되는지 확인하고, 설치 후 cowsay labhub 실행 결과를 /root/offline/run.txt 로 저장하세요.
  8. /root/offline/report.txt 를 다음 4줄로 만드세요. PACKAGES=<pool 안 .deb 개수> / BYTES=<pool 안 .deb 파일 크기 합계(바이트)> / VERIFY=OK / SNAPSHOT=<오늘 날짜 YYYY-MM-DD>

참고

무엇을 받아야 하는지 먼저 계산

/root/offline 디렉터리를 만들고, cowsay 를 설치할 때 받아야 할 파일들의 URI 목록을 /root/offline/uris.txt 로 저장하세요. (실제로 설치하면 안 됩니다.)

apt-get install 에는 실제로 받지 않고 받을 URI 목록만 출력하는 옵션이 있습니다. 시뮬레이션 계열 옵션을 찾아보세요.

패키지 내려받기

cowsay 와 그 의존성을 내려받기만 하고, 받은 .deb 파일을 /root/offline/pool/ 로 모으세요. 최소 2개 이상이어야 합니다.

설치까지 하지 말고 내려받기만 하는 옵션이 있습니다. 받은 파일은 apt 캐시 디렉터리에 쌓입니다.

체크섬 매니페스트 생성

/root/offline/pool 안의 모든 .deb 에 대한 SHA-256 매니페스트를 /root/offline/manifest.sha256 으로 만드세요.

sha256sum 을 여러 파일에 한 번에 걸면 '해시 공백 파일명' 형식이 나옵니다. 나중에 검증할 때 그대로 쓸 수 있는 형식입니다.

매니페스트로 검증

그 매니페스트로 검증을 수행하고 결과를 /root/offline/verify.txt 로 저장하세요. 모든 줄이 정상(OK)이어야 합니다.

sha256sum 에는 파일 대신 매니페스트를 읽어 검사하는 옵션이 있습니다. 검증은 매니페스트가 있는 디렉터리에서 실행해야 경로가 맞습니다.

반입분으로 저장소 색인 만들기

/root/offline/pool 을 저장소로 만들기 위해 PackagesPackages.gz 를 생성하세요.

앞 실습과 같은 방법입니다. 다만 이번에는 파일이 여러 개이므로 색인의 Package 항목 수를 확인해 보세요.

반입 저장소 등록

/etc/apt/sources.list.d/labhub-airgap.list 로 이 저장소를 등록하고 색인을 갱신하세요.

저장소 이름을 앞 실습과 다르게 하세요. 두 저장소가 동시에 유효해도 괜찮습니다.

반입 저장소에서 재설치

cowsay재설치해서 반입분으로도 설치가 되는지 확인하고, 설치 후 cowsay labhub 실행 결과를 /root/offline/run.txt 로 저장하세요.

이미 설치된 패키지를 같은 버전으로 다시 설치하려면 재설치 옵션이 필요합니다.

반입 보고서

/root/offline/report.txt 를 다음 4줄로 만드세요. PACKAGES=<pool 안 .deb 개수> / BYTES=<pool 안 .deb 파일 크기 합계(바이트)> / VERIFY=OK / SNAPSHOT=<오늘 날짜 YYYY-MM-DD>

매니페스트 줄 수, 총 바이트, 검증 결과를 모으면 됩니다. 총 바이트는 du 나 stat 로 구할 수 있습니다.