본문 바로가기
컴퓨터 활용(한글, 오피스 등)/50_2.운영체제_리눅스

[폐쇄망] yum repository, yumdownloader

by 3604 2023. 11. 25.
728x90

출처: [폐쇄망] yum repository, yumdownloader (tistory.com)


이번 게시글에서는 yum repository와 yumdownloader의 사용법을 알아보겠다.

 

 

1. 저장소 만들기

먼저 의존성 패키지들을 보관할 repository를 만든다.

repository는 하나의 저장소라고 생각하면 된다.

인터넷이 연결되지 않는 오프라인 환경에서는 의존성 에러때문에 직접 설치하는데 시간이 많이드는데, 

따라서 설치에 필요한 rpm파일들을 로컬 저장소(repository)에 모아두고 온라인에서 처럼 [yum install 저장소이름] 명령어를 통해 한번에 패키지 설치가 가능하다.

 

1-1. repository 생성하기

cd /home/
mkdir opc
cd opc
mkdir postgresql12
cd home/opc/postgresql12

아래의 명령어로 로컬저장소를 선언해준다
createrepo /home/opc/postgresql12

 

필자는 위의 경로에 postgresql12라는 폴더를 만들어주었다.

 

 

※ 이때 createrepo가 안된다면 

1. 아래 명령어로 createrepo가 설치 되었는지 확인해본다

rpm -qa | grep createrepo

 

2. createrepo 설치

yum install createrepo

 

 

 

1-2. yum에 로컬 저장소 연결하기

cd /etc/yum.respos.d
vi postgresql12.repo/

 

파일 내용은 아래와 같다.

[postgresql12-repo] 
name=local repository
baseurl=file:///home/opc/postgresql12/
enabled=1
gpgcheck=0

 

 

 

1-3. yum repolist

명령어를 통해서 저장소 생성을 확인한다.

# yum repolist

 

 

 

1-4. 저장소 제외

# yum install [패키지이름] 

yum 이란?

yum은 패키지 설치 관리 도구로 필요한 패키지들을 인터넷상에 존재하는 패키지 저장소 서버로부터 다운로드 받아 설치하게 된다. 따라서 인터넷이 연결되어있어야 한다.

 

yum 저장소 만들어서 사용하기

하지만 필자는 폐쇄망에서 yum을 사용할것이다.

그렇기 때문에 저장소에 따로 의존성 관련된 rpm 파일들을 전부 저장해놓고 설치한다.

하지만 이때 패키지 이름의 중복으로 인해

yum 도구가 내가 만들어놓은 저장소 안에 있는 패키지를 먼저 인식하는게 아니라

인터넷상에 존재하는 패키지 저장소 서버부터 인식하는 에러가 발생할 수도 있다.

예를들면 yum install postgres 라는 명령어를 사용시

필자는 만들어놓은 저장소 이름이 postgres여서 위와 같이 설치하려고 했지만,

yum도구 필자가 만들어 놓은 저장소를 인지하지 못하고, 내부적으로 있던 저장소의 패키지부터 다운로드 하려고 할것이다.

따라서 이와같은 에러를 피하기 위해서는 저장소를 제외시키면 해결이된다.

 

저장소 제외시키는법

# cd /etc/yum.repos.d/

위의 경로에 yum의 레포가 모여있는데, 내가 위에서 새로 만들어준 postgresql12.repo라는 폴더 이외에 다른 .repo파일들을 따로 디렉토리(old_repo)를 만들어서 보관해준다.

 

과정은 아래와 같다.

# mkdir old_repo

# mv .repo old_repo

# cd old_repo

# mv postgresql12.repo ..

 

# yum repolist

위의 명령어를 통해 repolist를 확인해보면 저장소가 제외되었음을 확인할 수 있다.

 

 

 

2. yumdownloader

yumdownloader는 현재 환경에 필요한 의존성 관련 패키지를 한번에 자동으로 내려받아준다.
- resolve 옵션: 의존되는 모든 패키지들도 다운받도록 해준다.
- destdir 옵션: 저장되는 디렉토리를 지정할 수 있다. 
(yumdownloader --help로 확인가능)

 

rpm을 설치하다보면 의존성 에러때문에 도저히 답이 안나오는 경우가 있다.
수많은 관련 파일을 하나하나 다운로드 받기도 힘들고,
의존성 실패나는 파일을 하나하나 찾기도 힘들다. 

이때 yumdownloader를 사용하면 필요한 의존성 패키지가 한번에 다운받아진다.

따라서 의존성 패키지를 yum repository에 넣어놓고 설치하면 된다.

 

 

 

공유하기
게시글 관리
구독하기wldnjd2의 개발블로그
728x90