What is a SPEC FIle?
SPEC파일은 rpmbuild유틸리티가 실제로 RPM을 만드는 데 사용하는 "레시피"라고 생각할 수 있습니다. 일련의 섹션에서 지침을 정의하여 구축 시스템에 무엇을 해야 하는지 알려 줍니다. 섹션은 Preamble(서문)과 Body(본문)에 정의되어 있다. Preamble에는 Body에 사용되는 일련의 메타 데이터 항목이 포함되어 있습니다. Body에는 build에 필요한의 주요 부분이 포함되어 있습니다.
Preamble(서문)
Name
package의 기본 이름으로, Spec파일 이름과 일치해야 합니다.
즉 package의 기본 이름을 basic-package라면, package 또한 basic-package.spec 이여야 한다.
Version
Software의 upstream version 정보입니다. Major.Minor.Release 또는 Major, Minor version으로 명시해준다.
Summary
package의 summary, 즉 한줄로 작성된 package의 설명이다.
Release
software가 release된 횟수를 작성한다. 기본적으로 1%{?dist}로 설정하고 package가 release될 때 마다 증가시킨다.
Software의 새로운 버전이 만들어지면 다시 1로 재설정한다.
License
Software의 License 사항을 기재해 준다.
URL
추가적인 정보를 확인할 수 있는 URL을 기입한다. 대부분 소프트웨어의 업 스트림 프로젝트 웹 사이트이다.
Source0
The full URL for the compressed archive containing the (original) pristine source code, as upstream released it. "Source" is synonymous with "Source0". If you give a full URL (and you should), its basename will be used when looking in the SOURCES directory. If possible, embed %{name} and %{version}, so that changes to either will go to the right place. Preserve timestamps when downloading source files. If there is more than one source, name them Source1, Source2 and so on. If you're adding whole new files in addition to the pristine sources, list them as sources after the pristine sources. A copy of each of these sources will be included in any SRPM you create, unless you specifically direct otherwise. See Source URL for more information on special cases (e.g. revision control).
BuildRequires
프로그램을 빌드하는 데 필요한 패키지 목록이다. BuildRequires의 여러 항목이있을 수 있을 수 있고, 필요한 패키지는 하나의 라인에 하나씩 작성한다.
Requires
프로그램을 설치될 떄 필요한 Package 리스트이다. BuildRequires는 RPM binary를 빌드하기 위해 필요로 하는 리스트라면, Requires는 프로그램이 설치, 실행될 때 필요로 하는 Package들의 리스트이다.
# Example form
Name: basic-package
Version: 0.0.1
Summary: The basic package for example
Release: 1%{?dist}
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
BuildRequires: cmake
BuildRequires: gettext-tools
Requires(post): /sbin/ldconfig
'Linux > Command & Tool' 카테고리의 다른 글
[NerdTree] 마우스 사용하기 (0) | 2017.12.18 |
---|---|
ccat - colorizing cat, cat에 color를 입히다. (0) | 2017.12.15 |
[rpm] package file variables (0) | 2017.11.16 |
[CMake] CMakeLists.txt 변수 (0) | 2017.11.13 |
[CMake] CMakeLists.txt 명령 (0) | 2017.11.10 |