Questa sembra una domanda semplice, ma non sembra che l'articolo the docs abbia qualcosa da dire sull'argomento. Mi piacerebbe fare qualcosa come Requires: vim or emacs
ma quando lo faccio, in realtà dipende da vim
, or
e emacs
. Qual è la sintassi per dipendere da uno o dall'altro dei due pacchetti?Come posso fare in modo che un RPM dipenda dal pacchetto un pacchetto OR b?
risposta
Il modo standard per eseguire questa operazione è tramite la virtual fornisce: gli RPM di fornitura ogni stato che forniscono un pacchetto virtuale e l'RPM dipendente richiede quel pacchetto virtuale. Quindi, nel tuo esempio, vim
e emacs
entrambi Provides: text-editor
, e il tuo pacchetto sarebbe Requires: text-editor
.
Se i pacchetti a cui si sta dipendendo non forniscono un pacchetto virtuale appropriato, è probabile che si possa risolvere questo problema creando il proprio. Crea dummy my-package-vim-mode
e my-package-emacs-mode
RPMs che Requires: vim
e Requires: emacs
, rispettivamente, e Provides: my-package-text-editor
, quindi avere il pacchetto Requires: my-package-text-editor
.
Non esiste tale capacità in rpm. Richiedere un virtuale prevede che i pacchetti abbiano in comune, se ce n'è uno.
Se i pacchetti non hanno il comune Fornire e non si desidera ricostruire e gestire i fork di quei pacchetti, ma entrambi forniscono lo stesso file, è possibile dipendere da un file. Per esempio:
Requires: /usr/bin/pear
In questo modo il pacchetto non importa se pera binario è fornita da php-pear o php53-pera.