System Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> System Administration for Redhat Linux
[목차]
제6장 RPM 패키지 관리

    7. 간단한 rpm 패키지 만들기



rpm 패키지를 만드는 방법에 대해 간단히 소개한다. 프로그램 소스를 rpm 패키지로 만들기 위해서는 rpm 패키지를 만들기 위한 작업 공간이 필요하다.
또, rpm 패키지를 만들기 위한 spec도 필요하다. rpm을 만들기 위한 공간은 아래와 같은 구조의 디렉토리가 /usr/src 밑에 만들어진다.

redhat ┬─ BUILD
       
├─ RPMS ─ ┬─ i386
       
│           ├─ i686
       
          └─ noarch
       
├─ SOURCES
       
├─ SPECS
       
└─ SRPMS

BUILD는 빌드할 때 소스를 풀어 놓고 작업을 하는 곳이다. RPMS는 바이너리의 최종 결과가 아키텍처에 따라 해당 디렉토리에 만들어지게 한다. SOURCES는 rpm을 만들기 위한 프로그램 소스가 위치하는 곳이고, SPECS는 rpm 패키지를 정의한 spec 파일이 위치하는 곳이다. SRPMS 는 rpm 패키지 중 소스 패키지가 만들어지는 곳이다.

[root@leelab rpm]# rpm -qa|grep xmms
[root@ns rpm]# rpm -ivh xmms-1.2.5-1.src.rpm
   1:xmms                   ########################################### [100%]
[root@leelab rpm]# cd /usr/src
[root@leelab src]# ls
linux  linux-2.4  linux-2.4.2  linux-2.4.5  redhat
[root@leelab src]# cd redhat
[root@ns redhat]# ls
BUILD  RPMS  SOURCES  SPECS  SRPMS
[root@leelab redhat]# cd SPECS/
[root@ns SPECS]# ls
xmms.spec
[root@leelab SPECS]#

많은 프로그램들이 소스 개발자에 의해 처음부터 spec 파일을 함께 제공하고 있다. 이 경우엔 손쉽게 SOURCES 디렉토리에 타르볼 프로그램 소스를 가져다 놓고, SPECS에 spec 파일을 가져다 놓으면 된다. 만약, spec 파일이 존재하지 않는다면, 직접 spec 파일을 만들어야 한다. 여기선 spec 파일을 직접 작성하는 방법에 대해서는 소개하지 않겠다. 여러분이 정말 패키징에 관심이 있다면 관련 하우투 문서를 참고 하여 spec 파일을 만드는 방법을 참고하기 바란다.
앞서 설명한 바와 같이 프로그램 소스와 spec파일이 준비되었다면, SPECS디렉토리에 가서 다음처럼 하면 된다.

# rpm -bb xmms.spec

error: failed build dependencies:
        libvorbis-devel   is needed by xmms-1.2.5-1

# rpm -qa |grep vorbis

vorbis-1.0beta4-3
vorbis-devel-1.0beta4-3

# vi xmms.spec

... 생략

Requires:       libogg >= 1.0beta3
Requires:       vorbis >= 1.0beta3
BuildPrereq:    libogg-devel
BuildPrereq:    vorbis-devel

... 생략

위와 같이 수정한다.

# rpm -bb xmms.spec

-bb 옵션은 바이너리 패키지만을 만드는 것을 의미한다. 이렇게 하면, RPMS 디렉토리 밑에 해당하는 아키텍처에 패키지가 만들어진다. 인텔 호환 아키텍처인 경우 별도의 지정이 없으면, i386 아키텍처로 만들어진다. 만약 소스 rpm과 바이너리 rpm을 만들고 싶다면 다음과 같이 한다.

# rpm -ba xmms.spec

이것은 프로그램 소스와 spec 파일이 있을 때, rpm을 빌드할 때의 방법이다. 그렇다면, 소스 rpm을 빌드하여 바이너리 패키지를 얻으려면 어떻게 할 까? 이럴 때는 다음과 같이 하면 된다.

# rpm --rebuild xmms-1.2.4-4.src.rpm

--rebuild라는 옵션을 이용하면, 소스 패키지를 빌드하여 바이너리 패키지를 얻을 수 있다. 바이너리 패키지는 RPMS의 아키텍처 디렉토리에 있게 된다.

지금 까지 RPM에 대해 알아 보았다. RPM은 레드햇의 패키지 관리도구로 널리 사용된다. 편리하고 강력한 패키지 관리 도구로, rpm이 발전하면서 다양한 기능이 추가되어 기능을 모두 사용할 수 없을 정도이다. 그러므로 사용하다 필요한 것이 있으면, rpm의 맨 페이지나 도움말을 참고하는 습관이 필요하다. rpm의 사용이 어렵다고 느낀다면 프론트-엔드 프로그램을 이용하는 것도 좋은 방법이다.

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.