RPMをパッケージ化するには、次のものが必要だとします。一つ以下に、
Foo
Bar
Baz
RPMは仕様ファイルに入れる機能をサポートしていますか?
答え1
Larsonのコメントを回答に変換します。
rpm 4.13.0以降、rpmはすべての依存関係でブール式をサポートします。https://rpm.org/user_doc/more_dependent.html
たとえば、
Requires: (pkgA or (pkgB and pkgC))
あなたの場合は次のとおりです。
Requires: Foo or Bar or Baz
rpm-4.13+の可用性は、RHEL 8およびすべての最新のFedoraで利用できることを意味します。
RHEL 7でこれを達成するには、仮想プロビジョニングを使用してこの問題を解決できます。以下を指定できます。
Requires: some-server-capability
次に、Foo、Bar、Bazパッケージに次のものを入れる必要があります。
Provides: some-server-capability
残念ながら、これを行うにはFoo、Bar、およびBazパッケージを変更する必要があります。あなたの管理下になくRHEL 7以下を使用している場合、あなたは破滅です。
一部のパッケージはすでにこの仮想プロビジョニングを使用しています。たとえば、次のことができます。
Requires: smtp-server
Requires: webserver
たとえば、Web サーバーは httpd、nginx、または lightttpd パッケージで提供されます。