LINUX

[LINUX]오프라인 yum repository 만들기 (createrepo)

으악꿈 2022. 10. 25. 17:29
728x90

간혹 yum 패키지를 오프라인 환경에서 다운로드 받아야 하는 경우가 있다.

 

이런 경우 보통 온라인 환경에서 rpm 파일을 미리 다운로드 받아 수동으로 yum 패키지를 설치하곤 하는데, dependency문제와 설치 순서가 정확해야 한다는 불편함이 있다.

 

이런 경우 온라인 환경에서 필요한 yum 패키지를 다운로드 받아 repository를 수동으로 생성하여 오프라인 환경에서 사용이 가능하다.

 

 

먼저 온라인 환경에서 필요한 작업을 진행한다.

 

1. repository 생성에 필요한 yum 패키지 다운로드

# yum install yum-utils createrepo


2. yum 패키지들을 저장할 디렉터리 생성 및 이동

# mkdir -p /tmp/customrepo
# cd /tmp/customrepo


3. 필요한 yum 패키지 다운로드

# yumdownloader --resolve --destdir=. telnet
# yumdownloader --resolve --destdir=. gcc
# yumdownloader --resolve --destdir=. curl

디렉터리를 조회해보면 dependency를 포함한 rpm 파일들이 아래와 같이 다운로드 되어있다.


4. repository 생성

# createrepo .

repodata라는 디렉터리가 생성되고, 조회해보면 xml/gz/bz2 파일이 생성되어 있다.


5. repodata 디렉터리 압축 후 SFTP를 통해 customrepo.tar 다운로드

# tar -cvf customrepo.tar /tmp/customrepo/

 

 

이제 온라인 환경에서의 작업은 완료되었다.

다음은 오프라인 환경의 서버에서 필요한 작업을 진행한다.

 

 

1. customrepo.tar 파일 업로드 후 압축 해제

# cd /tmp/
# tar -xvf customrepo.tar


2. /etc/yum.repos.d에 repo파일 생성 (repository 등록)

# vi /etc/yum.repos.d/custom-repo.repo

[custom-repo]
name=custom repo
baseurl=file:///tmp/customrepo
enable=1
gpgcheck=0


3. 수동으로 생성한 repository에서 다운로드 가능한 yum 패키지 확인

# yum --disablerepo="*" --enablerepo=custom-repo list available


4. 필요한 yum 패키지 다운로드

# yum --disablerepo="*" --enablerepo=custom-repo install telnet
# yum --disablerepo="*" --enablerepo=custom-repo install gcc
# yum --disablerepo="*" --enablerepo=custom-repo install curl

 

728x90