De manera predeterminada, un patrón se corresponde con un paquete si
cualquier versión del paquete coincide con el patrón. De todas formas,
algunos patrones restringen sus sub-patrones para emparejarse solo con
algunas versiones de un paquete. Por ejemplo, el término de búsqueda
selecciona
cualquier paquete que dependa de un paquete que coincide con
?depends
(patrón
)patrón
. De todas formas,
patrón
solo coincide con las versiones de un
paquete que satisfacen la dependencia. Esto significa que si
foo
depende de bar (>= 3.0)
, estando
disponibles 2.0
, 3.0
, y
4.0
, en el patrón de búsqueda
sólo las versiones
?depends
(?version
(2\.0))3.0
y 4.0
se compararían con
, conduciendo a que no se encontraría
?version
(2\.0)foo
en esta búsqueda.
Importa qué versiones se revisan porque, al igual que en el ejemplo
anterior, algunos patrones coincidirían con una versión pero no con la
otra. Por ejemplo, el patrón ?installed
solo muestra la versión del
paquete que está instalado. De manera similar, el patrón
solo encontraría versiones que contengan el
?maintainer
(desarrollador
)desarrollador
dado. Normalmente, todas las
versiones de un paquete tienen el mismo desarrollador, pero éste no es
siempre el caso; de hecho, cualquier patrón de búsqueda que examina los
campos de un paquete (aparte de su nombre, por supuesto) actúa de esta
manera, pues todos los campos de un paquete pueden variar de una versión a
otra.
Para revisar un patrón con todas las versiones de un paquete, aunque el
patrón generalmente se compara sólo con algunas versiones, use el término
?widen
. Por ejemplo,
muestra cualquier
paquete ?depends
(?widen
(?version
(2\.0)))A
que depende de un paquete
B
, donde B
coincide
con la versión 2.0
, independientemente de si la versión
satisface la dependencia de A
. Por otro lado, el
término ?narrow
restringe las versiones con las cuales se compara el
sub-patrón:
encontraría cualquier paquete cuya
versión instalada tiene una dependencia que se puede satisfacer con un
paquete cuya cadena de versión contenga
“?narrow
(?installed
,
?depends
(?version
(ubuntu)))ubuntu
”.
Nota | |
---|---|
Hay una sutil pero importante distinción entre emparejar un patrón con un paquete, y emparejarlo con todas las versiones de ese paquete. Cuando un patrón se compara con un paquete cada uno de sus términos se compara con el paquete, y por lo tanto cada término coincidiría si cualquier versión del paquete coincide. En contraste, cuando un patrón se compara con cada versión de un paquete, coincidiría con éxito al emparejarse cuando todos sus términos coinciden con la misma versión del paquete.
Por ejemplo: suponga que la versión |