DEV/CONSOLE

Yum dnf

SBP 2025. 5. 15. 11:33
리눅스 로컬 YUM / DNF 저장소

리눅스 로컬 YUM / DNF 저장소 설정 및 사용 방법

리눅스에서 "로컬 yum" 또는 "로컬 DNF" 저장소를 설정하는 것은 인터넷에 연결된 외부 저장소 대신, 로컬 시스템이나 로컬 네트워크에 패키지(RPM 파일) 저장소를 구축하고 사용하는 것을 의미합니다. 이는 YUM 또는 DNF 패키지 관리자를 통해 이루어집니다.

로컬 저장소를 사용하는 이유 (장점)

  • 오프라인 환경 지원: 인터넷 연결이 없는 환경에서도 소프트웨어 설치 및 업데이트가 가능합니다.
  • 빠른 설치 및 업데이트: 로컬 소스에서 패키지를 가져오므로 다운로드 시간이 매우 단축됩니다.
  • 대역폭 절약: 패키지를 한 번만 다운로드하여 로컬 저장소에 두고 여러 시스템이 공유하여 사용합니다.
  • 버전 제어: 특정 버전의 패키지만 포함시켜 시스템 전반의 소프트웨어 버전을 통일하고 제어할 수 있습니다.
  • 보안 향상: 외부 저장소 의존성을 줄이고 신뢰할 수 있는 내부 소스만 사용합니다.
  • 사용자 정의 패키지 배포: 자체 개발 또는 수정한 RPM 패키지를 내부적으로 쉽게 배포할 수 있습니다.

로컬 저장소 구축 방법

  1. RPM 패키지 확보:

    저장소에 포함시킬 RPM 파일들을 수집합니다. 방법은 여러 가지가 있습니다:

    • yumdownloader 또는 dnf download 명령어로 공식 저장소에서 다운로드
    • reposync 명령어로 전체 또는 부분 저장소 미러링
    • 운영체제 설치 미디어(ISO 파일)에서 복사
    • 직접 빌드한 사용자 정의 RPM
  2. 패키지 구성:

    수집한 RPM 파일들을 로컬 서버 또는 머신의 특정 디렉토리에 정리합니다.

  3. 저장소 메타데이터 생성:

    패키지 디렉토리에 대한 메타데이터를 생성합니다. createrepo 명령어를 사용합니다.

    createrepo /경로/패키지/디렉토리

    이 명령어는 해당 디렉토리 내에 repodata라는 하위 디렉토리를 생성하고, 그 안에 yum/dnf가 사용할 메타데이터 파일들을 만듭니다.

  4. 저장소 접근 가능하게 만들기:

    클라이언트 시스템이 이 패키지 디렉토리와 repodata에 접근할 수 있도록 합니다.

    • 로컬 파일 시스템: file:///경로/ (클라이언트와 저장소가 동일 머신에 있을 때)
    • HTTP/HTTPS: http://서버_IP_또는_도메인/경로/ (가장 흔함, 웹 서버 필요)
    • FTP: ftp://서버_IP_또는_도메인/경로/
    • NFS 또는 Samba: 네트워크 마운트 사용

클라이언트 머신에서 로컬 저장소 사용 방법

  1. .repo 파일 생성:

    로컬 저장소를 사용할 클라이언트 시스템에서 /etc/yum.repos.d/ (DNF의 경우 /etc/dnf.repos.d/) 디렉토리에 새로운 .repo 파일을 생성합니다. 파일 이름은 자유롭게 지정할 수 있습니다 (예: local.repo).

    [local-repo-id]
    name=My Local Repository Name
    baseurl=프로토콜://서버_IP_또는_도메인/패키지/디렉토리/경로/
    enabled=1
    gpgcheck=0
    # priority=1 (선택 사항: 우선순위 설정)
    • [local-repo-id]: 저장소의 고유 ID (대괄호 포함)
    • name: 저장소에 대한 설명
    • baseurl: repodata 디렉토리가 포함된 상위 디렉토리의 URL 또는 로컬 경로를 지정합니다.
    • enabled=1: 이 저장소를 활성화합니다.
    • gpgcheck=0: GPG 서명 체크를 비활성화합니다. 보안을 위해 1로 설정하고 GPG 키를 가져오는 것이 권장되지만, 간단한 로컬 저장소에서는 0으로 설정하기도 합니다.
  2. 캐시 정리 및 새로고침:

    새로운 저장소 설정을 적용하기 위해 패키지 관리자의 캐시를 정리하고 저장소 정보를 다시 로드합니다.

    yum clean all  # YUM 사용 시
    dnf clean all  # DNF 사용 시
    yum makecache  # YUM 사용 시 (선택 사항)
    dnf makecache  # DNF 사용 시 (선택 사항)
  3. 저장소 사용:

    이제 yum install <패키지명>, dnf install <패키지명>, yum update, dnf update 등의 명령어를 평소처럼 사용하면 설정된 로컬 저장소를 통해 패키지를 검색하고 설치/업데이트하게 됩니다.

YUM과 DNF

DNF는 RHEL 8 이상 및 이에 기반한 배포판(AlmaLinux, Rocky Linux, CentOS Stream 등)에서 YUM을 대체하는 새로운 패키지 관리자입니다. 하지만 저장소를 구성하는 기본적인 개념, .repo 파일의 형식, 그리고 createrepo와 같은 도구는 YUM과 DNF 모두 거의 동일하게 사용합니다. 따라서 위에서 설명한 로컬 저장소 설정 및 사용 방법은 두 패키지 관리자 모두에 적용됩니다.

로컬 YUM/DNF 저장소는 오프라인 환경에서의 패키지 관리, 배포 속도 향상, 버전 관리 및 대역폭 절약 등 여러 면에서 유용한 기술입니다.