Skip to content

Rpm

  • Published on
    반입한 rpm 묶음을 폐쇄망 안에서 정상적인 dnf 저장소로 만드는 전 과정을 다룹니다. createrepo_c가 만들어 내는 repodata 디렉터리의 구조와 repomd.xml의 역할, 패키지를 추가했을 때 --update로 증분 갱신하는 법, 그리고 체크섬 타입과 메타데이터 압축 옵션을 공식 man 페이지 기준으로 정리합니다. 이어서 baseurl에 file 스킴을 쓰는 단일 서버 구성과 사내 HTTP로 여러 서버에 배포하는 구성을 각각 .repo 파일로 작성하고, gpgcheck와 repo_gpgcheck의 차이, GPG 공개키를 폐쇄망에 반입해 등록하는 절차를 rpm과 rpmkeys 양쪽 표기로 설명합니다. 마지막으로 폐쇄망에서 가장 자주 사람을 잡는 dnf 메타데이터 캐시 문제를 dnf clean의 하위 명령별 동작과 metadata_expire 설정으로 풀어냅니다.
  • Published on
    인터넷이 연결된 장비에서 RHEL 패키지를 의존성까지 통째로 받아 폐쇄망에 반입하는 실제 절차를 명령 단위로 정리합니다. dnf download의 --resolve와 --alldeps가 정확히 무엇을 다르게 하는지, 왜 이미 설치된 패키지 때문에 의존성이 조용히 빠지는지, 그리고 --installroot로 빈 루트를 만들어 그 함정을 없애는 방법을 공식 문서 문장과 함께 다룹니다. 빈 installroot에서는 releasever가 rpmdb에서 유도되지 않아 트랜잭션이 실패하므로 --releasever를 반드시 넘겨야 한다는 점, 모듈러 시스템에서는 module_platform_id까지 지정해야 한다는 점도 함께 짚습니다. 이어서 저장소 전체를 복제하는 dnf reposync의 옵션을 --download-metadata, --newest-only, --gpgcheck, --delete 중심으로 정리하고, yumdownloader를 언제 쓰는지, 받은 결과가 의존성 측면에서 완전한지 dnf repoclosure로 어떻게 검증하는지까지 이어갑니다. RHEL 10의 dnf5에서 옵션 이름이 달라지는 부분도 표로 비교합니다.
  • Published on
    반입 매체에 무엇을 담고 무엇을 검증할지, 그리고 그 번들을 6개월 뒤에 다시 열었을 때 같은 결과가 나오게 만드는 방법을 정리합니다. 폐쇄망에서 서명 검증이 연결망보다 오히려 더 중요한 이유 — 나중에 온라인으로 대조할 수단이 사라진다는 점 — 을 먼저 짚고, rpm과 rpmkeys의 서명 검사 명령을 최신 man 페이지 기준으로 구분해 설명합니다. 이어서 재현 가능한 번들의 핵심인 매니페스트를 구체적으로 만듭니다. 파일 이름에는 드러나지 않는 epoch까지 포함한 완전한 NEVRA, 패키지별 SHA-256, 저장소 스냅샷 날짜, 사용한 releasever, 출처 저장소 ID를 rpm 질의 형식으로 한 번에 뽑아내고, 반입 후 이 매니페스트로 번들을 대조하는 검증 스크립트까지 이어집니다. 마지막으로 반입 기록에 무엇을 남겨야 감사와 재현 양쪽을 만족하는지 다룹니다.
  • Published on
    금융·공공·국방 폐쇄망에 RHEL 패키지를 반입해 설치할 때 왜 "rpm 파일 하나 복사"로 끝나지 않는지를 구조부터 정리합니다. RPM 의존성이 목록이 아니라 심볼 단위 그래프라는 점, 그 그래프를 푸는 depsolver가 저장소 메타데이터를 필요로 하는데 폐쇄망 안에는 그 메타데이터가 없다는 점, 그래서 문제가 "파일 옮기기"가 아니라 "해결된 트랜잭션을 통째로 옮기기"가 된다는 점을 짚습니다. 이어서 BaseOS와 AppStream으로 나뉜 Red Hat 콘텐츠 배포 구조와 서브스크립션·엔타이틀먼트의 역할, 저장소가 계속 움직이기 때문에 발생하는 버전 드리프트, 그리고 RHEL 8의 모듈러리티가 RHEL 9와 RHEL 10에서 어떻게 달라졌는지를 공식 문서 기준으로 비교합니다. 서브스크립션이 없는 독자를 위해 CentOS Stream·Rocky·Alma로 무엇까지 재현할 수 있는지도 함께 적었습니다.