이전 포스트에서 설명 한 것처럼 설정된 repository에서 패키지를 다운로드하고 설치하는데 도움을 준다.
이를 위해서는 언급 한 것과 같이 RPM패키지들과 이들 정보를 가진 repository가 필요하다.
일반적인 환경에서는 공용 repositoy (Kakao, naver, KAIST)등에서 제공하는 mirror 사이트를 이용하면 되지만, 폐쇠망 이나, 네트워크 상태가 좋지 않은 경우를 대비해 로컬(서버에 저장)이나, 내부망에 repository를 구축 할 수도 있다.
생각보다 구축 방법은 단순하다.
1. RPM패키지 파일 다운로드
2. repository 정보 생성
3. repo 파일 생성(구축된 repository 서버 정보 기록)
4. 네트워크 접근을 허용할 경우위한 http 서버 구축
로컬 리포지터리 생성
※CentOS7.8 (모든 패키지 포함) 미디어 파일을 이용한 구축의 예
필요 패키지 설치
# repository 구축을 위한 필수 패키지 다운로드
[centos:/home:]# yum install createrepo yum-utils
Loaded plugins: fastestmirror, langpacks
중략
* updates: mirror.kakao.com
base | 3.6 kB 00:00:00
중략
(5/5): updates/7/x86_64/primary_db | 4.5 MB 00:00:01
==================================================================================================================================================================
Package Arch Version Repository Size
==================================================================================================================================================================
Updating:
yum-utils noarch 1.1.31-54.el7_8 updates 122 k
Transaction Summary
==================================================================================================================================================================
Upgrade 1 Package
후략
설치미디어 파일 다운로드
# 설치 미디어 파일 다운로드
[centos:/home:]# wget http://mirror.navercorp.com/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-Everything-2003.iso
iso 파일 마운트
[centos:/home:]# mkdir /mnt/centos
[centos:/home:]# mount CentOS-7-x86_64-Everything-2003.iso /mnt/centos
mount: /dev/loop0 is write-protected, mounting read-only
repodata 생성
[centos:/home:]# mkdir /home/repo-data
# 패키지 파일을 복사할 디렉토리 생성.
# 마운트 한 ISO 파일 경로를 직접 지정할 수도 있지만, 이 경우 마운트 정보를 변경 해야 한다.
[centos:/home:]# cp /mnt/centos/Packages/*.rpm /home/repo-data/
# 패키지 파일 복사 centos 7.8.2003 iso 기준으로 10070개 rpm 파일이 존재한다.
[centos:/home:]# createrepo /home/repo-data/
Spawning worker 0 with 2518 pkgs
Spawning worker 1 with 2518 pkgs
Spawning worker 2 with 2517 pkgs
Spawning worker 3 with 2517 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
repo 파일 생성
[centos:/home:]# vi /etc/yum.repos.d/local.repo
#여기부터 붙여넣기 한다.
[haedongg_local-repo]
name=haedongg_local-repo
baseurl=file:////home/repo-data
# createrepo 명령으로 생성된 repodata 가 있는 디렉토리를 지정한다.
enabled=1
gpgcheck=0