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


8

RHEL / CentOS / SL 5および6の単一のrpm仕様を記述しようとしています。この仕様はpythonアプリ用であるため、ビルドプロセスに違いはありません。しかし、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

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

%{?el5:Requires: kmod-coretemp}

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

Release: 1%{?dist}

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


ありがとう!まあ、私のシステムには何らかの理由でこれがありませんが、マクロを手動で定義しました。イグナシオの回答が最初の回答であったため、申し訳ありませんでした。
rvs '06 / 06/23

1
それらが存在しない場合はredhat-rpm-config、Yumからパッケージをインストールする必要がある場合があります。
Dan Carley、2011年

インストールされていますが、まだマクロはありません。他のrhel5マシンと同様に、centos固有のものだと思います。
rvs '06 / 06/23
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.