Lors de la déclaration de dépendances dans debian/control
pour créer un package, je peux spécifier une limite inférieure ou supérieure sur la version. Par exemple, si je dépend de libvtk6-dev
étant au moins la version 6.0.0
, je peux écrire dans la ligne Depends
:
libvtk6-dev (>= 6.0.0)
Mais est-il possible de spécifier une plage? Par exemple, si je dépend de la version 6.0 ou 6.1 d'un paquet, mais pas de la version 6.2 ou 5.9, comment pourrais-je spécifier cela?
Un exemple plus complexe serait si les dépendances d'un paquet changent en fonction de la version. Par exemple, libvtk6-dev
a des dépendances manquantes, mais cela change en fonction de la version du package installé. Comment puis-je dire quelque chose comme: si libvtk6-dev
est la version 6.0 ou 6.1, alors dépend également de libpython2.7-dev
, et si la version est supérieure ou égale à 6.2, alors dépend de libproj-dev
?
Vous pouvez le faire avec l'exemple <<
:
libvtk6-dev (>= 6.0.0), libvtk6-dev (<< 6.2.0)
De cette façon, vous avez verrouillé la plage entre 6.0.0 et 6.1.0. De la même manière que vous devez spécifier pour chaque package individuellement, il n'y a pas de dépendance si ceci est alors demandé.
Alors décomposons-le:
libvtk6-dev (>= 6.0.0), libvtk6-dev (<< 6.2.0), libpython2.7-dev
OU (logique op)
libvtk6-dev (>= 6.2.0), libproj-dev
,
dans Depends:
est comme AND (action logique). |
est OR (logique op) mais ils n'ont pas la même priorité ni les crochets à combiner directement dans cet ordre/formulaire.
Voici ce que je pourrais venir avec:
libvtk6-dev (>= 6.0.0), libvtk6-dev (>= 6.2.0) | libpython2.7-dev, libvtk6-dev (<< 6.2.0) | libproj-dev
Comment le lire:
libvtk6-dev (>= 6.0.0)
libvtk6-dev (>= 6.2.0)
alors libpython2.7-dev
libvtk6-dev (<< 6.2.0)
alors libproj-dev
Ce qui est drôle, est semblable à la logique NI (ou NAND ) en électronique. Si vous en avez une, vous pouvez en créer toutes les opérations logiques.