클라우드 아카이브

[Redhat][패키지 관리자] Local YUM Repository 등록/삭제 본문

OS 및 스토리지/운영체제

[Redhat][패키지 관리자] Local YUM Repository 등록/삭제

Cloud Engineer 2021. 11. 20. 10:08

개요

폐쇄망에서 특정 서비스를 구축하기 위해 의존성을 가지는 Package를 설치해야될 수 있습니다. 이러한 상황에서 제가 생각할 수 있는 방법은 크게 3가지입니다.

1. 의존성을 가지는 전체 Package의 RPM을 가져와서 설치

2. 컴파일된 Package를 가져와서 직접 컴파일하여 설치

3. OS의 공식 ISO를 가져와서 마운팅하여 해당 패키지들을 Repository 등록 및 패키지 설치 관리 도구를 사용하여 설치

서버 운영자는 당연히 패키지의 의존성을 알아서 관리해주는 yum과 같은 패키지 설치 관리 도구를 사용하여 특정 Package를 설치하는게 가장 쉽고 안전한 방법입니다. 본 포스팅에서는 3번째 방법으로 Package를 설치하는 글을 작성하겠습니다. OS는 RHEL 및 CentOS를 기준으로 설명하겠습니다.

사전학습 : RPM vs YUM

Yum Repository에 대해 본격적으로 알아보기 전에 RPM과 YUM의 차이점에 대해 알아보겠습니다.

  RPM (Redhat Package Manager) YUM (Yellowdog Updator Modified)
개념 패키지들을 자동으로 적절한 디렉토리에 저장 및 빌드해주는 프로그램 듀크대학교에서 개발한 RPM 기반의 레드헷 패키지 관리 프로그램
설치 방식 $ rpm (옵선) (패키지 이름)
ex) $ rpm -qvhU vim
$ yum (옵션) (행위) (패키지 이름)
ex) $ yum -y install vim
패키지 의존성 관리 여부 X O

Yum Repository란

Package를 모아놓은 저장소이며, yum을 통해 패키지를 설치할 경우 Yum Repository로 등록된 저장소에서 다운로드하여 설치하기 때문에 해당 패키지는 반드시 Repository에 위치해있어야 합니다.

관련 예제

# 활성화된 Yum Repository 확인
$ yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
repo id                                                              repo name                                                               status
base/7/x86_64                                                        CentOS-7 - Base                                                         10,072
extras/7/x86_64                                                      CentOS-7 - Extras                                                          448
updates/7/x86_64                                                     CentOS-7 - Updates                                                         773
repolist: 11,293

# Yum Repository 위치
$ ls -al /etc/yum.repos.d/
합계 52
drwxr-xr-x.   2 root root  220 10월  2 02:03 .
drwxr-xr-x. 139 root root 8192 12월  3 10:42 ..
-rw-r--r--.   1 root root 1664 10월 23 23:53 CentOS-Base.repo
-rw-r--r--.   1 root root 1309 10월 23 23:53 CentOS-CR.repo
-rw-r--r--.   1 root root  649 10월 23 23:53 CentOS-Debuginfo.repo
-rw-r--r--.   1 root root  630 10월 23 23:53 CentOS-Media.repo
-rw-r--r--.   1 root root 1331 10월 23 23:53 CentOS-Sources.repo
-rw-r--r--.   1 root root 8515 10월 23 23:53 CentOS-Vault.repo
-rw-r--r--.   1 root root  314 10월 23 23:53 CentOS-fasttrack.repo
-rw-r--r--.   1 root root  616 10월 23 23:53 CentOS-x86_64-kernel.repo

실습 : 폐쇄망에서 Yum Repository 등록하여 필요한 패키지 다운

시스템 환경

- 구축 중인 서버에 CentOS 8.x ISO 파일이 인입된 상태

ISO 파일 마운트

사전에 CentOS8.x ISO 파일을 다운로드하여 폐쇄망에 해당 이미지 파일을 이동시켜놓습니다. 그리고 YUM Repository를 구성할 서버에서 해당 이미지 파일을 마운팅합니다. lsblk 명령어로 ISO 파일이 /dev/sr0에 시스템에 장치로 인식되어 입력되었다는 것을 확인했다고 가정하겠습니다.

# iso9660 타입인 "CentOS8.x.iso"파일이 장치로 입력된 지점을 /mnt에 마운트
$ mount -t iso9660 -o /dev/sr0 /mnt

Repository 추가

시스템에서 마운팅된 경로를 인식하고 ISO의 Repository를 찾아갈 수 있도록 아래와 같이 입력해줍니다.

$ vi /etc/yum.repos.d/my.repo

[my-repo]
name=My Repository
baseurl=file:///mnt/
enabled=1
gpgcheck=0

정상적으로 인식되었는지 확인 및 캐시 삭제

시스템에서 위의 Repository를 정상적으로 인식했는지 확인합니다. 정상적으로 인식이 되었으면 기존 시스템에 저장된 패키지 목록을 제거한 후 새로운 패키지 목록을 다운로드 받을 수 있도록 해줍니다.

 

# 위에서 추가한 Repository가 정상적으로 인식되었는지 확인
$ yum repolist | grep my-repo

repo id        repo name        status

my -repo    My Repository       6,713

# 기존 패키지 목록을 제거 후, 최초 yum 명령어 실행 시 새로운 패키지 목록을 다운로드
$ yum clean all

 

 

[출처]

- https://mamu2830.blogspot.com/2020/01/rpm-rpm.html

- https://mamu2830.blogspot.com/2020/02/yum.html

- https://dejavuhyo.github.io/posts/centos-yum-repository-add-delete/

 

Comments