4.2. 사양 파일 정보


사양 파일은 rpmbuild 유틸리티에서 RPM 패키지를 빌드하는 데 사용하는 지침이 포함된 파일입니다. 이 파일은 일련의 섹션에 지침을 정의하여 빌드 시스템에 필요한 정보를 제공합니다. 이러한 섹션은 Preamblespec 파일의 Body 부분에 정의되어 있습니다.

  • Preamble 섹션에는 본문 섹션에서 사용되는 일련의 메타데이터 항목이 포함되어 있습니다.
  • Body 섹션은 지침의 주요 부분을 나타냅니다.

4.2.1. Preamble 항목

다음은 RPM 사양 파일의 Preamble 섹션에서 사용할 수 있는 몇 가지 지시문입니다.

Expand
표 4.2. Preamble 섹션 지시문
지시문정의

이름

사양 파일 이름과 일치해야 하는 패키지의 기본 이름입니다.

버전

소프트웨어의 업스트림 버전 번호입니다.

릴리스

패키지 버전이 릴리스된 횟수입니다.

초기 값을 1%{?dist} 로 설정하고 패키지의 새 릴리스마다 늘립니다. 새 버전의 소프트웨어가 빌드되면 1 로 재설정합니다.

요약

패키지에 대한 간단한 한 줄 요약입니다.

라이센스

패키지되는 소프트웨어의 라이센스입니다.

사양 파일의 라이센스 레이블을 지정하는 방법에 대한 정확한 형식은 다음 RPM 기반 Linux 배포 지침(예: GPLv3+ )에 따라 달라집니다.

URL

소프트웨어에 대한 자세한 내용은 전체 URL(예: 패키징 중인 소프트웨어에 대한 업스트림 프로젝트 웹 사이트)입니다.

소스

패치되지 않은 업스트림 소스 코드의 압축된 아카이브의 경로 또는 URL입니다. 이 링크는 아카이브의 액세스 가능하고 안정적인 스토리지(예: 패키지 관리자의 로컬 스토리지)가 아닌 업스트림 페이지(예: 업스트림 페이지)를 가리켜야 합니다.

지시문 이름 끝에 숫자 또는 숫자 없이 Source 지시문을 적용할 수 있습니다. 번호가 지정되지 않은 경우 번호가 내부적으로 항목에 할당됩니다. 값을 명시적으로 지정할 수도 있습니다(예: Source0,Source1,Source2,Source3 등).

패치

필요한 경우 소스 코드에 적용할 첫 번째 패치의 이름입니다.

지시문 이름 끝에 숫자 또는 숫자 없이 Patch 지시문을 적용할 수 있습니다. 번호가 지정되지 않은 경우 번호가 내부적으로 항목에 할당됩니다. 또한 Patch0,Patch1,Patch2,Patch3 등과 같은 번호를 명시적으로 지정할 수도 있습니다.

%patch0,%patch1,%patch2 매크로 등을 사용하여 패치를 개별적으로 적용할 수 있습니다. 매크로는 RPM 사양 파일의 Body 섹션에 있는 %prep 지시문 내에 적용됩니다. 또는 모든 패치를 사양 파일에서 제공되는 순서대로 자동으로 적용하는 %autopatch 매크로를 사용할 수 있습니다.

BuildArch

소프트웨어가 빌드될 아키텍처입니다.

예를 들어 소프트웨어를 해석된 프로그래밍 언어로 완전히 작성한 경우 해당 값을 BuildArch: noarch 로 설정합니다. 이 값을 설정하지 않으면 소프트웨어가 빌드된 시스템의 아키텍처(예: x86_64 )를 자동으로 상속합니다.

BuildRequires

컴파일된 언어로 작성된 프로그램을 빌드하는 데 필요한 쉼표 또는 공백으로 구분된 패키지 목록입니다. BuildRequires 의 여러 항목이 있을 수 있으며 각각 SPEC 파일의 자체 행에 있습니다.

필요

설치된 소프트웨어를 실행하는 데 필요한 쉼표 또는 공백으로 구분된 패키지 목록입니다. Requires 의 여러 항목이 있을 수 있으며 각각 사양 파일의 자체 행에 있을 수 있습니다.

ExcludeArch

특정 프로세서 아키텍처에서 소프트웨어를 작동할 수 없는 경우 ExcludeArch 지시문에서 이 아키텍처를 제외할 수 있습니다.

충돌

설치된 경우 소프트웨어가 제대로 작동하려면 시스템에 설치해서는 안 되는 쉼표 또는 공백으로 구분된 패키지 목록입니다. Conflicts 의 여러 항목이 있을 수 있으며 각각 spec 파일의 자체 행에 있습니다.

사용되지 않음

Obsoletes 지시문은 다음 요인에 따라 업데이트 작동 방식을 변경합니다.

  • 명령행에서 rpm 명령을 직접 사용하는 경우 설치 중인 패키지의 더 이상 사용되지 않는 패키지와 일치하는 모든 패키지를 제거하거나 업데이트 또는 종속성 해결기에 의해 업데이트가 수행됩니다.
  • 업데이트 또는DNF(종속성 확인자)를 사용하는 경우 일치하는 Obsoletes가 포함된 패키지: 업데이트가 추가되고 일치하는 패키지를 교체합니다.

제공

패키지에 Provides 지시문을 추가하면 이 패키지를 이름 이외의 종속성에서 참조할 수 있습니다.

이름,버전릴리스 (NVR) 지시문은 name-version-release 형식으로 RPM 패키지의 파일 이름을 구성합니다.

rpm 명령을 사용하여 RPM 데이터베이스를 쿼리하여 특정 패키지에 대한 NVR 정보를 표시할 수 있습니다. 예를 들면 다음과 같습니다.

# rpm -q bash
bash-4.4.19-7.el8.x86_64
Copy to Clipboard Toggle word wrap

여기에서 bash 는 패키지 이름이고 4.4.19 는 버전이며 7.el8 은 릴리스입니다. x86_64 마커는 패키지 아키텍처입니다. NVR 과 달리 아키텍처 마커는 RPM 패키지러를 직접 제어하지 않지만 rpmbuild 빌드 환경에 의해 정의됩니다. 이에 대한 예외는 아키텍처 독립적인 noarch 패키지입니다.

4.2.2. 본문 항목

다음은 RPM 사양 파일의 Body 섹션에 사용된 항목입니다.

Expand
표 4.3. 본문 섹션 항목
지시문정의

%Description

RPM에 패키지된 소프트웨어에 대한 전체 설명입니다. 이 설명은 여러 줄에 걸쳐 있을 수 있으며 단락으로 나눌 수 있습니다.

%Prep

빌드하기 위해 소프트웨어를 준비하는 명령 또는 일련의 명령(예: Source 지시문에서 아카이브 압축을 풀기 위한 명령)입니다. %prep 지시문에는 쉘 스크립트가 포함될 수 있습니다.

%build

소프트웨어를 머신 코드(컴파일된 언어의 경우) 또는 바이트 코드(일부 해석 언어의 경우)로 빌드하는 명령 또는 일련의 명령입니다.

%install

소프트웨어를 빌드한 후 rpmbuild 유틸리티에서 BUILDROOT 디렉토리에 소프트웨어를 설치하는 데 사용할 명령 또는 일련의 명령입니다. 이러한 명령은 빌드가 수행되는 %_builddir 디렉터리의 원하는 빌드 아티팩트를 패키징할 파일과 디렉터리 구조가 포함된 %buildroot 디렉터리에 복사합니다. 여기에는 ~/rpmbuild/BUILD에서 ~/rpmbuild/BUILD ROOT 로 파일을 복사하고 ~/rpmbuild/BUILDROOT 에 필요한 디렉토리를 만드는 작업이 포함됩니다.

%install 디렉터리는 최종 사용자의 루트 디렉터리와 유사한 빈 chroot 기본 디렉터리입니다. 여기에서 설치된 파일을 포함할 모든 디렉터리를 생성할 수 있습니다. 이러한 디렉터리를 만들려면 경로를 하드 코딩하지 않고도 RPM 매크로를 사용할 수 있습니다.

%install 은 패키지를 설치할 때가 아니라 패키지를 만들 때만 실행됩니다. 자세한 내용은 사양 파일 작업을 참조하십시오.

%check

소프트웨어를 테스트하는 명령 또는 일련의 명령(예: 단위 테스트)입니다.

%files

RPM 패키지에서 제공하는 파일 목록(사용자 시스템 및 시스템의 전체 경로 위치)을 설치합니다.

빌드 중에 %files 에 나열되지 않은 %buildroot 디렉터리에 파일이 있는 경우 패키징되지 않은 파일에 대한 경고가 표시됩니다.

%files 섹션에서 기본 제공 매크로를 사용하여 다양한 파일의 역할을 나타낼 수 있습니다. rpm 명령을 사용하여 패키지 파일 매니페스트 메타데이터를 쿼리하는 데 유용합니다. 예를 들어 LICENSE 파일이 소프트웨어 라이센스 파일임을 나타내기 위해 %license 매크로를 사용합니다.

%changelog

다른 버전 또는 릴리스 빌드 간에 패키지에 발생한 변경 사항 레코드입니다. 이러한 변경 사항에는 패키지의 각 Version-Release에 대한 날짜-amped 항목 목록이 포함됩니다. 이러한 항목은 소프트웨어 변경이 아닌 패키징 변경 사항을 기록합니다(예: %build 섹션에서 패치 추가 또는 빌드 절차 변경).

4.2.3. 고급 항목

사양 파일은 Scriptlets 또는 Trigger와 같은 고급 항목을 포함할 수 있습니다. 스크립트릿 및 트리거는 빌드 프로세스가 아닌 최종 사용자의 시스템에서 설치 프로세스 중에 다른 지점에서 적용됩니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat