web-dev-qa-db-fra.com

Plage de versions dans debian / control

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?

1
PierreBdR

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é.

1
Videonauth
  • 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:

    1. Doit libvtk6-dev (>= 6.0.0)
    2. Si NOT libvtk6-dev (>= 6.2.0) alors libpython2.7-dev
    3. Si NOT 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.

0
user.dz