web-dev-qa-db-ja.com

rpm仕様:ディストリビューションバージョンに基づく条件付き要求

RHEL/CentOS/SL 5および6の単一のrpm仕様を記述しようとしています。この仕様はpython appを対象としているため、ビルドプロセスに違いはありません。ただし、RHEL/CentOS5では依存関係を1つ追加する必要があります。

El5のみの依存関係をどのように定義しますか?私は以下を試しました:

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

機能しません(CentOS5でビルドしても、kmod-coretemp依存関係は追加されません)。

私も以下を試しました:

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

構文エラーを報告します。 distマクロが設定されていて、 'el5'が含まれているはずです。しかし、rpmのif条件の構文が何であるかわかりませんか? rpmguideに詳細な回答はありません。

8
rvs

Fedora wikiは、いつものように、パッケージ化に関する最良のガイドラインを提供します。 Packaging:DistTag ページをご覧ください。 %{el5}変数と省略形の条件を使用して、EL5のパッケージをビルドするときに関連するRequire行が使用されるようにすることができます。

%{?el5:Requires: kmod-coretemp}

パッケージ間の混乱を避けるために、バージョンフィールドにdistタグを追加することをお勧めします。

Release: 1%{?dist}

Distタグの目的 を参照してください。

8
Dan Carley