yum을 위한 local repository 구축 하는 방법
로컬의 yum을 위한 repository를 구축하기 위해서는 createrepo가 설치되어 있어야 된다.
createrepo를 통해 repomd.xml 파일을 생성해야 로컬 레포지토리에서 yum을 사용할 수 있다.
시나리오
- 인터넷이 잘 되는 사무실
- 인터넷이 안되는 고객사
인터넷이 잘 되는 사무실에서 rpm 파일들을 다운로드 받아
인터넷이 안되는 고객사에 파일들을 복사 후 설치하기 위함
환경
- CentOS 6.9 Minimal
1. createrepo 파일을 다운로드 받는다.
yum install -y --downloadonly --downloaddir=/root/repository createrepo
- createrepo 설치에 필요한 의존성 파일들이 같이 다운로드 된다.
이런방식으로 고객사에 복사해갈 rpm 파일들을 다운로드 받아놓는다.
어떤 이유로 미러서버를 찾기 못해서 발생하는 에러이다.
이럴경우 아래 파일을 통해 네임서버가 정상적으로 설정되고 동작되는지 확인해야 한다.
해당 네임서버 아이피로 못나가는 방화벽 문제일 수도 있다.
아니면 일시적으로 발생할 수도 있다. 해당 에러가 발생해도 파일은 정상적으로 다운로드가 되기도 한다.
2. createrepo 및 필요한 파일 복사
- 이제 고객사 환경에 createrepo 파일 및 필요한 rpm 파일들을 복사한다.
(rpm파일들은 /root/repositoryFile 디렉토리에 복사하였다.)
- createrepo를 설치한다.
하지만 의존성 파일이 필요하다며 설치되지 않는다.
필요한 의존성 패키지 파일들을 역순으로 설치하면 createrepo를 설치할 수 있다.
3. 로컬 레포 생성
- /etc/yum.repos.d 폴더에 local.repo를 만든다.
기존 존재하는 CentOS로 시작하는 repo 파일들은 backup 디렉토리 생성 후 이동시킨다.
yum 명령어가 local.repo에 설정할 디렉토리에서 동작하도록 하기 위함이다.
4. 로컬 레포 파일 작성
- rpm 파일이 /root/repositoryFile 디렉토리에 복사해놓았으니
baseurl은 아래와 같다.
- enabled는 1로 설정되어있으면 이 레포(저장소)를 사용하겠다는 의미이다.
만약 0으로 되어있으면 사용하지 않겠다는 의미이다.
- gpgcheck는 GPG 서명 검증을 할지 여부이며 0일경우 서명검증을 하지 않는다.
서명검증을 할경우 서명이 안되어 있는 패키지는 설치가 안되므로 0으로 하는게 좋다.
5. creatrerepo로 repomd.xml 파일 생성
- createrepo /root/repository/File 명령어를 입력하면 해당 디렉토리 안에 repodate 폴더를
만들고 이 안에 repomd.xml 파일이 생성된다.
- 아래처럼 repomd.xml 파일이 만들어졌다.
이 파일이 있어야 local.repo에 설정한 baseurl에서 yum이 동작한다.
6. yum 명령어가 설정한 로컬 레포에서 동작 확인
- 이제 yum 명령어를 통해 패키지 설치를 진행하면 설정한 레포(/root/repositoryFile)
에서 패키지 파일이 정상적으로 설치되는 것을 볼 수 있다.
이 글이 도움이 되시기를 바라겠습니다~
댓글