Par défaut, un motif sélectionne un paquet dès qu'une version du paquet
correspond au motif. Cependant, certains motifs vont contraindre les
sous-motifs à ne chercher des correspondances que dans certaines versions
d'un paquet. Par exemple, le terme de recherche
ne
sélectionnera que les paquets qui dépendent d'un paquet correspondant au
?depends
(motif
)motif
. Cependant, le
motif
ne sera testé que dans les versions du
paquet qui satisfont effectivement une dépendance. Cela signifie que si
foo
dépend de bar (>= 3.0)
et que les
versions 2.0
, 3.0
et
4.0
de bar
sont disponibles, alors
avec le motif de recherche
,
seules les versions ?depends
(?version
(2\.0))3.0
et 4.0
seront
testées avec
, et donc
?version
(2\.0)foo
ne sera pas sélectionné par cette recherche.
Cela dépend des versions qui sont vérifiées car, comme dans l'exemple
précédent, certains motifs vont correspondre à une version, mais pas à une
autre. Par exemple, le motif ?installed
ne correspondra qu'à la version du
paquet qui est actuellement installée (s'il y en a effectivement une). De
même, le motif
ne
correspondra qu'aux versions maintenues par ce
?maintainer
(responsable
)responsable
. Normalement, toutes les versions
d'un même paquet ont le même responsable, mais ce n'est pas toujours le
cas. En fait, chaque motif de recherche qui examine les champs d'un paquet
(autres que son nom, bien sûr) vont se comporter de cette façon, car les
champs d'un paquet peuvent changer d'une version à l'autre.
Pour tester un motif contre toutes les versions d'un paquet, même si ce
motif serait normalement testé seulement dans certaines versions, utilisez
le terme ?widen
. Par exemple,
correspondra à
tout paquet ?depends
(?widen
(?version
(2\.0)))A
qui dépend d'un paquet
B
, dont une version correspond à l'expression
2.0
, indépendamment du fait que ce soit celle qui
satisfait la dépendance de A
ou non. D'autre
part, le terme ?narrow
restreint les versions pour lesquelles les
sous-motifs sont testés :
sélectionnera les paquets dont la
version installée a une dépendance qui peut être satisfaite par un paquet
dont le numéro de version contient la chaîne
« ?narrow
(?installed
,
?depends
(?version
(ubuntu)))ubuntu
».
Note | |
---|---|
Il y a une distinction subtile mais importante entre tester un motif dans un paquet, et le tester dans toutes les versions de ce paquet. Lorsqu'un motif est testé dans un paquet, chacun de ses termes est testé dans le paquet, et il y aura correspondance dès que pour chaque terme il y aura une version du paquet qui correspondra. En revanche, pour un motif testé dans toutes les versions d'un paquet, il y aura correspondance si tous les termes correspondent avec la même version du paquet.
Supposons par exemple que la version |