Dies scheint wie eine einfache Frage, aber the docs scheinen nicht zu diesem Thema etwas zu sagen. Ich möchte etwas wie Requires: vim or emacs
tun, aber wenn ich das tue, bin ich tatsächlich auf vim
, or
und emacs
angewiesen. Was ist die Syntax für das eine oder andere von zwei Paketen?Wie kann ich ein RPM abhängig von Paket a OR Paket b machen?
Antwort
Der Standard Weg dies zu tun ist über virtuelle bietet: die Bereitstellung RPMs jeder Staat, dass sie ein virtuelles Paket zur Verfügung stellen, und die abhängige RPM erfordert dieses virtuelle Paket. Also, in Ihrem Beispiel, vim
und emacs
beide Provides: text-editor
, und Ihr Paket würde Requires: text-editor
.
Wenn die Pakete, auf die Sie angewiesen sind, kein passendes virtuelles Paket enthalten, können Sie dies möglicherweise umgehen, indem Sie Ihr eigenes erstellen. Machen Sie Dummy my-package-vim-mode
und my-package-emacs-mode
RPMs, die Requires: vim
und Requires: emacs
bzw. Provides: my-package-text-editor
, dann haben Sie Ihr Paket Requires: my-package-text-editor
.
Es gibt keine solche Fähigkeit in U/min. Erfordert eine virtuelle Bereitstellung, die die Pakete gemeinsam haben, falls es eine gibt.
Wenn Pakete nicht über das gemeinsame Provide verfügen und Sie keine Forks dieser Pakete neu erstellen und pflegen wollen, aber beide die gleiche Datei bereitstellen, können Sie sich auf eine Datei verlassen. Zum Beispiel:
Requires: /usr/bin/pear
Auf diese Weise wird Ihr Paket keine Rolle, ob Birne binär durch php-Birne oder php53-Birne vorgesehen ist.