dpkg
/ APT lo ha supportato per secoli.
Ci sono due meccanismi per questo. Uno è dipendenze alternative semplicemente dichiarando la dipendenza in questo modo:
Depends: jquery | zeptojs
Dichiarerai che il pacchetto dipende da jquery
o zepto.js
.
L'altro meccanismo è Pacchetti virtuali . Un pacchetto può dichiarare che Provides
un pacchetto virtuale e quindi altri pacchetti possono dipendere da quel pacchetto virtuale.
Ad esempio, sia il pacchetto jquery
che il pacchetto zeptojs
possono dichiarare di fornire il pacchetto virtuale jquery-api
e quindi l'app può dipendere da jquery-api
. Questo ha il vantaggio aggiunto che se in futuro sul mercato appare una nuova libreria terza compatibile con JQuery, solo l'autore di quel pacchetto deve inserire una riga Provides: jquery-api
nella sua descrizione del pacchetto. Non devi cambiare la tua app e funzionerà solo con la nuova libreria.
Nella tua app:
Depends: jquery-api
In JQuery:
Provides: jquery-api
In Zepto.JS:
Provides: jquery-api
Nel nuovissimo nuovo JQuery sostitutivo, nuovo di zecca:
Provides: jquery-api