6.2. 사양 파일 조건


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

일반적으로 조건은 다음과 같은 측면을 다룹니다.

  • 아키텍처별 섹션.
  • 운영 체제별 섹션.
  • 다양한 버전의 운영 체제 간의 호환성 문제.

spec conditionals는 다양한 목적으로 사용할 수 있습니다. 예를 들면 다음과 같습니다.

  • 조건부 표현식(%if). %if 를 여러 용도로 사용할 수 있습니다. 예를 들어 다음 구문이 있을 수 있습니다.

    • If expression is true, then do some action:

      %if expression
      ...
      %endif
    • If expression is true, then do some action, otherwise, another action:

      %if expression
      ...
      %elsif expression
      ...
      %else
      ...
      %endif
    • %if 는 임의의 수의 %elif 조건(neted %elsif)을 따를 수도 있습니다. 예를 들면 다음과 같습니다.

      %if expression
      %elif expression
      ...
      %else
      %endif
  • 시스템 아키텍처(%ifarch,%ifnarch). %ifarch 는 현재 대상 시스템 아키텍처가 일치하는지 여부를 테스트합니다. %ifarch 를 사용하여 여러 플랫폼의 RPM 패키지를 빌드할 수 있습니다. 예를 들면 다음과 같습니다.

    %ifarch s390 s390x
    BuildRequires: s390utils-devel
    %endif
  • 운영 체제(%ifos,%ifnos). %IFOS 는 빌드 대상 운영 체제에 따라 사양 파일 처리를 제어합니다.

6.2.1. %if 조건 사용 예

사양 파일 내에서 %if 조건을 사용하는 방법을 보여주는 다음 예제를 검토하십시오.

예 6.1. %if 조건을 사용하여 Red Hat Enterprise Linux 10과 기타 운영 체제 간의 호환성을 처리

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

RHEL 10에서 패키지를 빌드할 때 %rhel 매크로의 값이 10 으로 설정될 때 고려되는 autoconf 스크립트에서 AS_FUNCTION_DESCRIBE 행을 주석 처리합니다.

예 6.2. %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 매크로가 설정된 경우 업스트림 아카이브의 이름을 정의하는 %ruby_archive 매크로가 다시 정의됩니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동