RPMパッケージが構築されたシステムがCentOSであるかどうかを仕様ファイルでどのように確認しますか?

RPMパッケージが構築されたシステムがCentOSであるかどうかを仕様ファイルでどのように確認しますか?

Requires:ビルドされた特定のディストリビューションによって異なるフィールドを含む仕様ファイルがあります。したがって、次の条件付き構造を作成できるはずです。

%if %{?fedora}
Requires:       xterm libssh clang
BuildRequires:  wxGTK3-devel  cmake clang-devel lldb-devel libssh-devel hunspell-devel sqlite-devel desktop-file-utils
%endif
%if (centos test)
Requires:       xterm libssh clang
BuildRequires:  wxGTK3-devel cmake clang-devel lldb-devel libssh-devel hunspell-devel
%endif

ここでは(centos test)、使用しているディストリビューションがCentOSであることを確認するためのいくつかのテストに置き換えられます。私はこれをテストするために%{?rhel}andを使ってみました。%{?centos}しかし、どちらも失敗しました。私もこれらのテストを試しましたが、そのうち%{rhel}%{centos}も動作しませんでした(マクロを認識していないようです)。 RPMマクロ参照を検索しました(例:https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s07.htmlそしてhttps://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html-single/RPM_Guide/index.html)しかし、この種のマクロは言及されていません。

ベストアンサー1

から引用https://fedoraproject.org/wiki/Packaging:DistTag#Conditionals:

特定のリリースシリーズを確認するには、以下を使用する必要があることに注意してください。

%if 0%{?rhel}

まさか

%if %{?rhel}

追加のゼロがない場合、%{rhel}が定義されていない場合、%if条件は存在しなくなり、rpmは構築されません。

同様に、最初の条件では0%{?fedora}を使用する必要があります。

おすすめ記事