Gibt es eine Möglichkeit, eine Abhängigkeit anzugeben, bei der jeder aus einer Gruppe die Nachfrage befriedigen kann?

Gibt es eine Möglichkeit, eine Abhängigkeit anzugeben, bei der jeder aus einer Gruppe die Nachfrage befriedigen kann?

Nehmen wir an, ich verpacke ein RPM, das erforderteinsder folgenden,

Foo
Bar
Baz

Unterstützt RPM die Funktion, dies in eine Spezifikationsdatei einzufügen?

Antwort1

Ich werde Larsens Kommentar in eine Antwort umwandeln:

Ab rpm 4.13.0 unterstützt rpm Boolesche Ausdrücke in allen Abhängigkeiten.https://rpm.org/user_doc/more_dependencies.html

Zum Beispiel:

Requires: (pkgA or (pkgB and pkgC))

In Deinem Fall wäre das:

Requires: Foo or Bar or Baz

Verfügbarkeit in rpm-4.13+ bedeutet, dass es in RHEL 8 und allen aktuellen Fedoras verfügbar ist.

Wenn Sie dies in RHEL 7 möchten, können Sie es mithilfe virtueller Provides umgehen. Sie können Folgendes angeben:

Requires: some-server-capability

und dann müssen Sie in den Paketen Foo, Bar, Baz Folgendes einfügen:

Provides: some-server-capability

Dies erfordert leider eine Änderung der Pakete Foo, Bar und Baz. Wenn Sie diese nicht unter Kontrolle haben und RHEL 7 oder älter verwenden, sind Sie aufgeschmissen.

Beachten Sie, dass einige Pakete diese virtuellen Bereitstellungen bereits verwenden. Sie können beispielsweise:

Requires: smtp-server
Requires: webserver

Und beispielsweise wird der Webserver durch die Pakete httpd, nginx oder lightttpd bereitgestellt.

verwandte Informationen