rpm 사양 : 배포판 기반 조건부 요구


8

RHEL / CentOS / SL 5 및 6에 대해 단일 rpm 사양을 작성하려고합니다.이 사양은 python 앱에 대한 것이므로 빌드 프로세스에는 차이가 없습니다. 그러나 RHEL / CentOS5에서는 추가 종속성을 하나 더 추가해야합니다.

el5에 대해서만 종속성을 정의하려면 어떻게해야합니까? 나는 다음을 시도했다.

%if 0%{?redhat} == 5 || 0%{?centos} == 5
Requires:   kmod-coretemp
%endif

작동하지 않습니다 (CentOS5에서 빌드해도 kmod-coretemp 종속성이 추가되지 않음).

나는 또한 다음을 시도했다.

%if %{?dist} == "el5"

구문 오류와 함께보고합니다. dist 매크로가 설정되어 있고 'el5'를 포함하고 있다고 확신합니다. 그러나 rpm의 if 조건문 구문이 무엇인지 잘 모르겠습니다. rpmguide에는 자세한 답변이 없습니다.

답변:



8

Fedora 위키는 평소와 같이 패키징에 대한 최상의 지침을 제공합니다. Packaging : DistTag 페이지를 살펴보십시오 . 당신이 사용할 수있는 %{el5}변수를 속기 조건부와 관계있는의 것을 보장하기 RequireEL5를위한 패키지를 빌드 할 때 라인이 사용됩니다.

%{?el5:Requires: kmod-coretemp}

dist나중에 패키지 간 혼동을 피하기 위해 버전 필드에 태그 를 추가하고 싶을 것입니다 .

Release: 1%{?dist}

Dist Tag의 목적을 참조하십시오 .


감사! 글쎄, 내 시스템에는 어떤 이유로이 기능이 없지만 매크로를 수동으로 정의했습니다. 죄송합니다. 첫 번째 답변이므로 이그나시오 (Ignacio) 답변을 수락 된 것으로 표시하십시오.
RVS

1
존재하지 않으면 redhat-rpm-configYum 에서 패키지를 설치해야 할 수도 있습니다 .
Dan Carley

설치되었지만 여전히 매크로는 없습니다. 다른 rhel5 머신과 마찬가지로 센 토스에 따라 다르다고 생각합니다.
rvs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.