[Linux] RHEL Local YUM Repository 구성
RHEL(Redhat Enterprise Linux)에 Local YUM Repository 구성하는 방법에 대하여 설명합니다. 레드햇 리눅스 같은 경우 기업환경의 인터넷이 되지 않는 환경에서 사용되는 경우가 많은데 Local YUM Repository를 구성하여 패키지를 쉽게 설치할 수 있습니다.
테스트 환경
• Red Hat Enterprise Linux (RHEL)
Local YUM Repository 구성 목적
Local YUM Repository를 구성하는 방법에 여러 가지가 있지만 가장 간단한 방법인 설치 CD를 이용해 구성하는 방법에 대해 소개합니다. 주로 이 방법은 OS 엔지니어가 RHEL을 설치 후 사용하며, local repo를 서버에 구성한 뒤 철수합니다. 그러면 애플리케이션 측에서 추가 패키지를 요청하여도 서버 관리자분들이 yum 명령어를 사용하여 쉽게 서버에 설치할 수 있습니다.
Local YUM Repository 설정
레드햇 설치 CD에는 기본 RHEL 서브스크립션에서 제공하는 RPM 패키지들이 모두 포함되어 있습니다. 따라서 RHEL을 설치한 버전과 동일한 ISO 파일이 준비되어 있어야 하며, 이를 통해 로컬 저장소를 구성할 수 있습니다.
VMware Workstation을 기준으로 설명하자면, RHEL ISO 파일을 가상 머신에 마운트하면 됩니다. ISO 파일이 마운트되면 시스템은 자동으로 /dev/sr0
장치를 생성하게 되며, 이는 udev
에 의해 처리됩니다.
CD가 삽입되면 시스템에서는 /dev/sr0
장치를 자동으로 생성합니다. 이 장치는 **광학 디스크 장치(CD/DVD)**로 인식되며, 이를 확인하는 가장 쉬운 방법은 lsblk
명령어를 사용하는 것입니다.
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 2G 0 disk └─mpatha 253:2 0 2G 0 mpath sr0 11:0 1 12G 0 rom /iso
여기서sr0
는 CD-ROM 장치를 의미하며, 실제 ISO 파일이 마운트된 장치입니다. 더 고급 방식으로는udevadm monitor
명령을 통해 이벤트를 모니터링할 수도 있지만, 기본적인 장치 확인은lsblk
로 충분합니다.
장치가 인식되었다면, /media
디렉터리에 임시로 마운트하여 내용을 확인할 수 있습니다.
# mount -o loop /dev/sr0 /media # df -h /media Filesystem Size Used Avail Use% Mounted on /dev/sr0 12G 12G 0 100% /media
CD 없이도 레포지터리가 작동하도록 하기 위해, /iso
디렉터리를 생성하고, CD의 모든 파일을 해당 디렉터리로 복사합니다.
# mkdir /iso # cp -a /media/* /iso/
/etc/yum.repos.d/
디렉터리 아래에 로컬 저장소용 .repo
파일을 생성합니다. 파일 이름은 자유롭게 정할 수 있지만, 반드시 .repo
확장자로 끝나야 합니다.
1) RHEL 8 이상 REPO 설정:
RHEL 8부터는 패키지가 BaseOS
와 AppStream
으로 분리되어 있으므로, 각각을 별도의 레포로 등록해야 합니다.
# cat /etc/yum.repos.d/local.repo [BaseOS] name=BaseOS repo baseurl=file:///iso/BaseOS gpgcheck=0 enabled=1 [AppStream] name=AppStream repo baseurl=file:///iso/AppStream gpgcheck=0 enabled=1
2) RHEL7 이하 REPO 설정:
RHEL 7 이전 버전에서는 패키지가 BaseOS
와 AppStream
으로 분리되어 있지 않기 때문에 하나의 저장소만 지정하면 됩니다.
# cat /etc/yum.repos.d/local.repo [local] name=localrepo baseurl=file:///iso gpgcheck=0 enabled=1
확인
- RHEL8
아래와 같이 AppStream과 BaseOS 두 개의 레포가 정상적으로 출력되는지 확인합니다.
# dnf repolist -v ... BaseOS repo 59 MB/s | 2.4 MB 00:00 AppStream repo 83 MB/s | 7.8 MB 00:00 Repo-id : AppStream Repo-name : AppStream repo Repo-revision : 1665640599 Repo-updated : Thu 13 Oct 2022 02:56:41 PM KST Repo-pkgs : 6,786 Repo-available-pkgs: 5,446 Repo-size : 9.2 G Repo-baseurl : file:///iso/AppStream Repo-expire : 172,800 second(s) Repo-filename : /etc/yum.repos.d/local.repo Repo-id : BaseOS Repo-name : BaseOS repo Repo-revision : 1665640687 Repo-updated : Thu 13 Oct 2022 02:58:08 PM KST Repo-pkgs : 1,720 Repo-available-pkgs: 1,718 Repo-size : 1.3 G Repo-baseurl : file:///iso/BaseOS Repo-expire : 172,800 second(s) Repo-filename : /etc/yum.repos.d/local.repo Total packages: 8,506
- RHEL7 이하
RHEL7 이하의 경우는 다음과 같이 하나의 REPO만 확인하면 됩니다.
# yum repolist -v ... Config time: 0.223 Yum version: 3.4.3 Setting up Package Sacks pkgsack time: 0.003 Repo-id : local Repo-name : localrepo Repo-revision: 1582647003 Repo-updated : Wed Feb 26 01:10:03 2020 Repo-pkgs : 5,231 Repo-size : 3.6 G Repo-baseurl : file:///iso Repo-expire : 21,600 second(s) Repo-filename: /etc/yum.repos.d/local.repo
DNF 와 YUM 명령어
RHEL 8부터는 yum
명령어 대신 dnf
명령어가 기본으로 사용됩니다. 실제로 RHEL 8에서는 /usr/bin/yum
이 dnf-3
을 가리키는 심볼릭 링크로 되어 있으며, 기존 yum
명령어와 호환되므로 별도의 학습 없이 그대로 사용할 수 있습니다.
# which yum /usr/bin/yum # ls -al /usr/bin/yum lrwxrwxrwx. 1 root root 5 Mar 9 2021 /usr/bin/yum -> dnf-3
마치며
Local YUM Repository 설정은 인터넷이 연결되지 않은 운영 환경뿐 아니라 테스트 환경에서도 매우 유용하게 사용됩니다. 단, 설치 CD/DVD 기반의 저장소는 최신 버전의 패키지를 포함하지 않는다는 한계가 있습니다. 최신 패키지 설치가 필요한 경우에는 Red Hat 서브스크립션을 등록하거나, 최신 패키지를 다운로드하여 HTTP 기반의 YUM 저장소를 별도로 구성하는 방법을 고려해야 합니다.
댓글
댓글 쓰기