Qualcuno sa come (o se è possibile) specificare un requisito alternativo o un insieme di requisiti in un file di specifiche, anziché un singolo requisito?
Ad esempio, supponiamo che ci siano due pacchetti disponibili, convenientemente denominati foo-bar
e bar-foo
. Il mio pacchetto richiede uno di questi, ma non entrambi, e non mi interessa quale sia presente. In fase di esecuzione utilizzo qualunque sia disponibile.
Così efficacemente vorrei un modo per dire:
Requires: foo-bar OR bar-foo
Per quanto ne so non è possibile, ma immagino che qui ci siano persone che sanno molto di più di RPM di me, quindi forse c'è un modo per farlo.
AGGIORNAMENTO: Controllo solo il packaging di bar-foo
, no foo-bar
, quindi avere entrambi fornire un pacchetto virtuale non funzionerà.
AGGIORNAMENTO: La cosa di cui ho effettivamente bisogno è di per sé un pacchetto virtuale all'interno di ciascuno dei pacchetti. Di ' foo-bar provides eagle' and
bar-foo fornisce beagle and my package works with either (or both); but other packages require either
eagle or
beagle or
foo-bar or
bar-foo`, e il sistema di destinazione può avere uno o entrambi installati.
Al momento sono propenso a risolvere questo problema con uno %pre
script che fa qualcosa del tipo:
rpm -q eagle || rpm -q beagle || echo "need eagle or beagle" && /bin/false
Mentre sono abbastanza sicuro che funzionerebbe, sembra una brutale elusione del monitoraggio delle dipendenze di RPM. Ad esempio non vedresti mai il mio pacco quando glielo chiedi whatrequires foo-bar
o whatrequires beagle
.
AGGIORNAMENTO: Ripensandoci, il dolore di richiedere alle persone di installare foo-bar
dove potrebbero non essere è meno del dolore di eludere la gestione delle dipendenze RPM, almeno per la mia situazione. Quindi, a meno che qualcuno non trovi un modo per richiedere correttamente "questo OR quello" (che penso sarebbe una grande caratteristica da avere in RPM in generale), allora ho intenzione di richiedere solo foo-bar
e quindi, in fase di esecuzione, se bar-foo
è disponibile sceglierò tra secondo i criteri di cui ho bisogno.
AGGIORNAMENTO: un'altra idea, che sarebbe anche barare RPM ma potrebbe riportare le cose nello stato giusto. Forse potrei, direttamente %post
, giocherellare con il database di RPM. Così %pre
mi potrebbe proteggere da un invalido di installazione, e %post
avrebbe effetto retroattivo dire RPM che richiedo uno foo-bar
o bar-foo
o entrambi, a seconda di ciò che è lì quando installo.
Grazie per i suggerimenti!
Provides: foo-bar
, quindi soddisfa entrambe le dipendenze. Per le versioni rpm più recenti, selezionare Dipendenze booleane . Stare lontano da %pre
e %post
sezioni, non tentare di sconfiggere il sistema .