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.