Hledání a verze balíků

Implicitně se vyhledávací vzor shoduje s balíkem, pokud vzoru vyhovuje libovolná verze balíku. Některé vzory omezují své podvzory pouze na některé verze balíku. Například vyhledávací term ?depends(vzor) vybere libovolný balík, který závisí na balíku odpovídajícímu vzoru vzor. vzor se však bude porovnávat pouze vůči verzím balíku, které splňují danou závislost. Například balík foo závisí na balíku bar (>= 3.0), od něhož jsou dostupné verze 2.0, 3.0 a 4.0. Pak se ve vyhledávacím vzoru ?depends(?version(2\.0)) budou vůči podtermu ?version(2\.0) porovnávat pouze verze 3.0 a 4.0 a tím pádem toto hledání nic nenalezne.

Na porovnávaných verzích záleží, protože jak bylo vidět na předchozím příkladu, některé vzory se mohou shodovat s jednou verzí balíku a s druhou ne. Například vzor ?installed se bude shodovat pouze s instalovanou verzí balíku (pokud taková existuje). Podobně vzor ?maintainer(správce) nalezne pouze verze, které mají za svého správce správce. Obvykle mívají všechny verze balíku stejného správce, ale přesto takový případ může nastat (např. balík spravovaný individuálně přejde pod týmovou správu). Stejně se chová každý vyhledávací vzor, který se dívá do kontrolních polí balíku (s výjimkou jména balíku), protože všechna pole se mohou mezi jednotlivými verzemi balíku měnit.

[Poznámka]Poznámka

Existuje drobný, ale významný, rozdíl mezi porovnáváním vzoru vůči balíku nebo porovnáváním vzoru vůči všem verzím balíku. V prvním případě se každý term vzoru porovnává vůči balíku, tzn. vyhledávací vzor jako celek se bude shodovat v případě, že se každý jeho podterm bude shodovat s některou z verzí balíku. Oproti tomu ve druhém případě se celý vzor porovnává vůči každé verzi balíku, což znamená, že aby byl úspěšný, musí se všechny termy vzoru shodovat vůči stejné verzi balíku.

Například předpokládejme, že je nainstalován balík aardvark ve verzi 3.0-1 a je dostupná verze 4.0-1. Pak vyhledávací vzor ?version(4\.0-1)?installed se shoduje s balíkem aardvark (a možná nějakými dalšími balíky), protože term ?version(4\.0-1) se shoduje se všemi balíky ve verzi 4.0-1 (tedy i s balíkem aardvark) a term ?installed se shoduje se všemi nainstalovanými balíky (tedy i s balíkem aardvark ve verzi 3.0-1). Tento výraz se neshoduje se všemi verzemi balíku aardvark, protože neexistuje verze, která by byla nainstalovaná a zároveň měla číslo verze 4.0-1.