본 문서의 목적은 Amazon 클라우드 상의 소프트웨어 배포를 위한 YUM Repository를 구축하는 방법을 설명합니다. Yum은 레드햇 계열의 리눅스에서 소프트웨어를 배포하기 위한 방법으로 rpmbuild를 활용하여 구축을 할 경우 손쉽게 대상 서버들로 배포하는 것이 가능합니다.
Repository 구축은 createrepo 명령을 활용하여 만들 수 있습니다. 일반적으로 설치된 패키지에는 createrepo 패키지가 설치되어 있지 않으므로 해당 패키지를 설치 후 시스템을 구축해야 합니다.
아래의 명령어를 활용하여 createrepo.noarch 패키지를 설치합니다.
설치 화면은 아래와 같은 결과를 보입니다.
[root@ip-10-100-0-10 ~]# yum install createrepo.noarch
Loaded plugins: priorities, security, update-motd, upgrade-helper
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package createrepo.noarch 0:0.9.9-11.2.amzn1 will be installed
--> Processing Dependency: python-deltarpm for package: createrepo-0.9.9-11.2.amzn1.noarch
--> Processing Dependency: deltarpm for package: createrepo-0.9.9-11.2.amzn1.noarch
--> Processing Dependency: pyliblzma for package: createrepo-0.9.9-11.2.amzn1.noarch
--> Processing Dependency: libxml2-python for package: createrepo-0.9.9-11.2.amzn1.noarch
--> Running transaction check
---> Package deltarpm.x86_64 0:3.5-0.5.20090913git.4.amzn1 will be installed
---> Package libxml2-python.x86_64 0:2.7.8-10.26.amzn1 will be installed
---> Package pyliblzma.x86_64 0:0.5.3-3.4.amzn1 will be installed
---> Package python-deltarpm.x86_64 0:3.5-0.5.20090913git.4.amzn1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================
Package Arch Version Repository Size
=============================================================================================================
Installing:
createrepo noarch 0.9.9-11.2.amzn1 amzn-main 106 k
Installing for dependencies:
deltarpm x86_64 3.5-0.5.20090913git.4.amzn1 amzn-main 100 k
libxml2-python x86_64 2.7.8-10.26.amzn1 amzn-updates 417 k
pyliblzma x86_64 0.5.3-3.4.amzn1 amzn-main 49 k
python-deltarpm x86_64 3.5-0.5.20090913git.4.amzn1 amzn-main 24 k
Transaction Summary
=============================================================================================================
Install 5 Package(s)
Total download size: 696 k
Installed size: 2.6 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): createrepo-0.9.9-11.2.amzn1.noarch.rpm | 106 kB 00:00
(2/5): deltarpm-3.5-0.5.20090913git.4.amzn1.x86_64.rpm | 100 kB 00:00
(3/5): libxml2-python-2.7.8-10.26.amzn1.x86_64.rpm | 417 kB 00:00
(4/5): pyliblzma-0.5.3-3.4.amzn1.x86_64.rpm | 49 kB 00:00
(5/5): python-deltarpm-3.5-0.5.20090913git.4.amzn1.x86_64.rpm | 24 kB 00:00
-------------------------------------------------------------------------------------------------------------
Total 131 kB/s | 696 kB 00:05
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : deltarpm-3.5-0.5.20090913git.4.amzn1.x86_64 1/5
Installing : python-deltarpm-3.5-0.5.20090913git.4.amzn1.x86_64 2/5
Installing : libxml2-python-2.7.8-10.26.amzn1.x86_64 3/5
Installing : pyliblzma-0.5.3-3.4.amzn1.x86_64 4/5
Installing : createrepo-0.9.9-11.2.amzn1.noarch 5/5
Verifying : pyliblzma-0.5.3-3.4.amzn1.x86_64 1/5
Verifying : deltarpm-3.5-0.5.20090913git.4.amzn1.x86_64 2/5
Verifying : python-deltarpm-3.5-0.5.20090913git.4.amzn1.x86_64 3/5
Verifying : createrepo-0.9.9-11.2.amzn1.noarch 4/5
Verifying : libxml2-python-2.7.8-10.26.amzn1.x86_64 5/5
Installed:
createrepo.noarch 0:0.9.9-11.2.amzn1
Dependency Installed:
deltarpm.x86_64 0:3.5-0.5.20090913git.4.amzn1 libxml2-python.x86_64 0:2.7.8-10.26.amzn1 pyliblzma.x86_64 0:0.5.3-3.4.amzn1
python-deltarpm.x86_64 0:3.5-0.5.20090913git.4.amzn1
Complete!
[root@ip-10-100-0-10 ~]#
리포지토리로 사용될 디렉토리를 생성하고, 아파치를 구성하는 작업을 수해해야 합니다. 본 문서에서 생성되는 디렉토리를 /opt/repo 라는 디렉토리를 사용합니다. 웹 서버의 경우 아파치에 기본적으로 설치되는 패키지를 yum 명령어를 활용하여 설치합니다.
아래의 명령을 수행하여 디렉토리를 생성합니다.
리포지토리를 HTTP로 사용하기 위한 다음의 명령어를 활용하여 아파치 패키지를 설치합니다.
설치가 완료되면 위의 createrepo와 같은 진행이 이루어집니다. 설치가 완료되면 /etc/httpd에 설정 정보가 설치됩니다. 앞서 생성된 /opt/repo 디렉토리를 웹 서버 상의 디렉토리로 인식되도록 아래와 설정을 추가합니다.
gpgkey는 리눅스에서 제공하는 repository key로써 다른 설정 파일의 항목을 활용하였습니다.