CentOS 6.5のrpmマクロ

CentOS 6.5のrpmマクロ

CentOS 6.5システム用の仕様ファイルを生成しようとしています。 rpmはOSのバージョンに応じて特定のRequires:行を追加するためにバージョンをチェックする必要があります。...まったく機能しません。

仕様ファイルの断片:

%if 0%{?rhel} == 6
Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

/etc/rpm/macros.dist:

# dist macros.

%rhel 6
%centos 6
%centos_ver 6
%dist .el6
%el6 1

私が訪問した多くのWebページによると、コードは機能するはずですが、rpmをインストールするときにpackageNameが必要であるというメッセージを受け取りませんでした。私がここで何を見逃しているのでしょうか?

書き直す...

システムを再インストールしましたが、すべてがうまく機能します。テストシステムの環境が何かを台無しにしているようです...元のコードが動作します。

ベストアンサー1

%{?rhel}6.so に拡張されるので、 に0%{?rhel}拡張され、06一致してはいけません6

次のことができます。

%if 0%{?rhel}
   Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

0定義されていない場合は%{rhel}拡張されます。06定義されている場合は拡張されます。 spec-file-land では、0値が false、06値が true です。

または、RHEL / CENTOS 6.Xのみを一致させたい場合(すべてのRHEL / CENTOSではない)、上記と同じロジックに従ってこのオプションを使用してください。

%if 0%{?el6}
   Requires: packageName
%endif
%description
Check dependencies and make OS modifications. 

%files

おすすめ記事