4.4. RPM 조건


RPM 조건부를 사용하면 SPEC 파일의 다양한 섹션을 조건부로 포함할 수 있습니다.

일반적으로 조건부 포함은 다음을 처리합니다.

  • 아키텍처별 섹션
  • 운영 체제별 섹션
  • 다양한 운영 체제 버전 간의 호환성 문제
  • 매크로의 존재 및 정의

4.4.1. RPM 조건 구문

RPM 조건의 경우 다음 구문을 사용합니다.

expression 이 true이면 몇 가지 작업을 수행합니다.

%if expression
…​
%endif

expression 이 true인 경우 다른 경우에는 다른 작업을 수행합니다.

%if expression
…​
%else
…​
%endif

4.4.2. RPM 조건 예

이 섹션에서는 RPM 조건의 여러 예를 제공합니다.

4.4.2.1. %if 조건

예 4.3. 8 및 기타 운영 체제 간의 호환성을 처리하기 위해 %if 조건을 사용

%if 0%{?rhel} == 8
sed -i '/AS_FUNCTION_DESCRIBE/ s/^//' configure.in sed -i '/AS_FUNCTION_DESCRIBE/ s/^//' acinclude.m4
%endif

이 조건은 AS_FUNCTION_DESCRIBE 매크로 지원 측면에서 RHEL 8과 기타 운영 체제 간의 호환성을 처리합니다. RHEL용으로 패키지를 빌드하면 %rhel 매크로가 정의되고 RHEL 버전으로 확장됩니다. 값이 8이면 RHEL 8에 대한 패키지가 빌드되는 것을 나타내는 경우 RHEL 8에서 지원하지 않는 AS_FUNCTION_DESCRIBE에 대한 참조가 autoconfig 스크립트에서 삭제됩니다.

예 4.4. 매크로 정의를 처리하기 위해 %if 조건을 사용

%define ruby_archive %{name}-%{ruby_version}
%if 0%{?milestone:1}%{?revision:1} != 0
%define ruby_archive %{ruby_archive}-%{?milestone}%{?!milestone:%{?revision:r%{revision}}}
%endif

이 조건부에서는 매크로에 대한 정의를 처리합니다. %milestone 또는 %revision 매크로가 설정되면 업스트림 tarball의 이름을 정의하는 %ruby_archive 매크로가 다시 정의됩니다.

4.4.2.2. %if 조건의 특수 변형

%ifarch 조건, %ifnarch 조건 및 %ifos 조건부는 %if 조건의 특수 변형입니다. 이러한 변형은 일반적으로 사용되며, 따라서 자체 매크로가 있습니다.

4.4.2.2.1. %ifarch 조건

%ifarch 조건은 아키텍처별 SPEC 파일 블록을 시작하는 데 사용됩니다. 그런 다음 각각 쉼표 또는 공백으로 구분된 하나 이상의 아키텍처 licenses가 있습니다.

예 4.5. %ifarch 조건 사용 예

%ifarch i386 sparc
…​
%endif

%ifarch%endif 사이의 SPEC 파일의 모든 내용은 32비트 AMD 및 Intel 아키텍처 또는 SunECDHE 기반 시스템에서만 처리됩니다.

4.4.2.2.2. %ifnarch 조건

%ifnarch 조건에는 %ifarch 조건보다 역방향 논리가 있습니다.

예 4.6. %ifnarch 조건 사용 예

%ifnarch alpha
…​
%endif

%ifnarch%endif 사이의 SPEC 파일의 모든 내용은 디지털 알파/AXP 기반 시스템에서 수행되지 않은 경우에만 처리됩니다.

4.4.2.2.3. %ifos 조건

%ifos 조건은 빌드의 운영 체제에 따라 처리를 제어하는 데 사용됩니다. 그런 다음 하나 이상의 운영 체제 이름을 지정할 수 있습니다.

예 4.7. %ifos 조건 사용 예

%ifos linux
…​
%endif

%ifos%endif 사이의 SPEC 파일의 모든 내용은 Linux 시스템에서 빌드가 수행된 경우에만 처리됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.