Rpmbuild spec file

From 탱이의 잡동사니
Revision as of 15:47, 23 March 2016 by Pchero (talk | contribs)
Jump to navigation Jump to search

Overview

RPM spec file 내용 정리

Preamble

%prep

이곳에서부터 명령 부분이 시작된다. 소스를 빌드할 준비를 하는데 쓰이며, 소스 패치, make 같은 셋업을 하는데 필요한 것들을 할 수 있다.

한가지 주의할 점으로 각각의 단락에는 실행할 쉘 스크립트가 와야한다. 간단히 소스를 풀고 패치할 쉘 스크립트를 만들어 %prep 아래에 적으면 된다. 주로 미리 정의된 %setup, %patch 매크로를 사용한다.

%prep
rm -rf $RPM_BUILD_DIR/cdplayer-1.0
zcat $RPM_SOURCE_DIR/cdplayer-1.0.tgz | tar -xvf -

%setup

간단한 양식으로써 소스를 풀고 소스 디렉토리로 이동하는 동작을 하는 매크로이다. 추가 옵션은 다음과 같다.

  • -n <name>
리스트된 이름에 빌드할 디렉토리의 이름을 정하는데, 기본값은 $NAME-$VERSION 이다. 다른

%build

%install

%files

RPM 파일에 패키징되어야하는 파일의 이름들을 지정한다. 즉, 여기서 지정한 파일들만 RPM 파일에 묶이게 된다. 디렉토리 이름을 지정할 경우, 하위 디렉토리를 포함한 모든 파일을 묶는 의미로 사용횐다.

파일 리스트에서 가장 주의해야 할 것은 디렉토리 리스트이다. 실수로 /usr/bin 을 써 두었다면, RPMbuild 는 /usr/bin 에 있는 모든 파일들을 추가하게 된다.

%doc

소스 패키지 내의 문서 파일을 지정하는데 사용된다. 문서는 /usr/doc/$NAME-$VERSION-$RELEASE 에 설치된다. 매크로를 써서 명령행에서 여러 문서를 리스트하거나, 각각을 매크로로 사용해서 리스트 할 수도 있다.

%config

패키지에서 설정 파일을 지정하는데 사용된다. RPM 패키지에 추가될 뿐만 아니라 해당 패키지가 제거될 때 패키지에 포함된 다른 파일은 시스템에서 삭제가 되지만 %config 매크로로 지정된 설정파일은 [설정파일패스].rpmsave 형태로 백업된다.

%dir

패키지에 추가할 디렉토리를 지정할 때 사용한다. 예를 들어 /usr/lib 디렉토리를 지정하면 /usr/lib 디렉토리 자체가 RPM 패키지 안에 추가된다.

%changelog

See also