Hlavní navigace

Pořádné vyhledávání s Aptitude

Petr Krčmář 14. 7. 2011

Balíčkovací systém musí umět především instalovat, aktualizovat a odinstalovávat. Nesmíme ale zapomínat na to, že musí být schopen i balíčky velmi dobře vyhledávat. Často totiž máme k dispozici desetitisíce balíčků a potřebujeme s nimi obratně zacházet. Aptitude k tomu má velmi mocné nástroje.

Před časem jsme se tu v článku zamýšleli, zda je lepší Apt nebo Aptitude. Ukázali jsme si řadu výhod Aptitude a v diskusi se objevily některé dotazy k jeho ovládání. Jeden z nich se týkal vyhledávání. Aptitude má totiž velmi silný vyhledávací aparát, který ovšem málokterý uživatel zná.

Mnoho z nich se tak domnívá, že Aptitude umí vyhledávat jen v názvech balíčků, což je jeho hlavní slabinou. Není to pravda a vyhledávat je možné podle mnoha různých vlastností balíčků od popisu, přes závislosti až po konflikty balíčků. Vše je navíc možné velmi jednoduše kombinovat. V dnešním článku si vyhledávání v Aptitude vysvětlíme.

Vyhledávání v kostce

Základní vyhledávání pomocí Aptitude je velmi snadné. Stačí použít parametr search a za něj vložit vyhledávaný výraz. Standardně jsou prohledány jen názvy balíčků:

$ aptitude search gajim
i   gajim                           - Jabber client written in PyGT

Kromě jednoduchých jednoslovných výrazů můžeme občas také potřebovat speciální znaky. Jelikož Aptitude používá při vyhledávání regulární výrazy, musíme před speciální řídicí znaky (jako plus, mínus, závorky, tečka, čárka, otazník, stříška a podobně) vložit lomítko. C++ tedy musíme zapsat jako "c\+\+", přičemž velikosti písmen se ignorují.

$ aptitude search "g\+\+"
i   g++                             - GNU C++ compiler
i A g++-4.4                         - GNU C++ compiler
p   g++-4.4-multilib                - GNU C++ compiler (multilib files
...

Stejně tak je možné použít několik speciálních znaků, které rozšiřují schopnosti vyhledávání. Například svislá čára (roura) funguje jako „nebo“ a umožňuje zpracovat dva různé výrazy:

$ aptitude search "gajim|jabbim"
i   gajim                           - Jabber client written in PyGTK
i   jabbim                          - Jabber/XMPP client written in Python wit

Kromě těchto jednoduchých výrazů je možné také použít takzvané vzory. Jedná se o řídicí sekvence, které určují, v jaké oblasti má Aptitude vyhledávání provést. Právě pomocí vzorů tak můžeme vyhledávat například v popisu balíčků. Vzory vždy začínají vlnkou ( ~) následovanou řídicím znakem (příkazem) a poté hledaným výrazem. Například takto:

$ aptitude search ~djabber
p   abiword                         - efektivní, bohatě vybavený textový proceso
p   ayttm                           - Universal instant messaging client
...

Důležitá poznámka: Vyhledávání není nutné používat jen ve spojení s parametrem search, ale i s ostatními. Můžete tak například chtít odstranit všechny balíčky, které odpovídají určitému vyhledávání a podobně.

Příklady vzorů

~A hledá v konkrétním archivu – například  testing

~a hledá balíky s naplánovanou akcí: install, upgrade, downgrade, remove, purge, hold nebo keep

~B hledá balíky s porušenými závislostmi: depends, predepends, recommends, suggests, conflicts nebo replaces

~b hledá porušené balíky

~c hledá odstraněné balíky, které v systému zanechaly konfiguraci

~d hledá balíky se zadaným výrazem v popisu

~E hledá balíky označené jako „Nezbytné“

~G hledá tagy balíčků (například game::strategy, viz projekt Debtags)

~i hledá nainstalované balíky

~n hledá ve jméně balíčku (standardní chování)

~P hledá balíky poskytující danou funkcionalitu (například www-browser, mail-transport-agent a podobně)

~p hledá prioritu balíčků: extra, important, optional, required nebo standard

~s hledá v sekcích balíčků (například web, games…)

~U hledá mezi balíky, které se mají aktualizovat

~V hledá ve verzích balíčků

~v hledá mezi virtuálními balíčky

Tento seznam není kompletní, ale obsahuje jen to nejzajímavější, co by se vám mohlo při běžném hledání hodit. Kompletní seznam naleznete v dokumentaci k Debianu.

Příklady vyhledávání

Nejběžnější bude asi vyhledávání v popiscích balíčků:

$ aptitude search ~dtwitter
p   bisho                           - Meego web services settings
p   bitlbee                         - An IRC to other chat networks gateway (def
p   bitlbee-common                  - An IRC to other chat networks gateway (com
p   bitlbee-dev                     - An IRC to other chat networks gateway (de

Můžeme také vyhledat všechny balíčky, které nám poskytnou webový prohlížeč:

$ aptitude search ~Pwww-browser
p   chimera2                        - Webový prohlížeč pro X
p   chromium                        - Chromium browser
p   conkeror                        - keyboard focused web browser with Emacs lo...

Dále můžeme chtít kombinaci určitých vlastností balíčků. Stačí je jednoduše zapsat za sebe:

$ aptitude search ~Pwww-browser~dgtk
p   epiphany-browser                - Intuitivní webový prohlížeč pro GNOME
p   midori                          - Rychlý, nenáročný grafický prohlížeč
p   netsurf                         - Small web browser with CSS - Transition pa
p   surf                            - simple web browser

Můžeme také vyhledat všechny nainstalované balíčky, které zprostředkovávají webové prohlížeče:

$ aptitude search ~i~Pwww-browser
i   links2                          - Webový prohlížeč běžící v grafickém i text
i   opera                           - Fast and secure web browser and Internet s

Jako příklad jiného využití vyhledávacích výrazů si můžeme uvést odstranění všech zbytků (obvykle konfigurace) již odinstalovaných balíčků:

$ aptitude purge ~c

Pomocí vyhledávacích vzorů například také zjistíme, kolik balíčků máme nainstalovaných v systému:

$ aptitude search ~i|wc -l
1825

Hledám, hledáš, hledáme

Vyhledávací vzory jsou velmi mocnou zbraní každého hledače v Aptitude. Pokud se je naučíte používat, budou vám pomocníkem nejen při klasickém vyhledávání v rozsáhlé databázi balíčků, ale umožní vám také efektivně čistit balíčkovací systém nebo hledat zlobivé balíčky. Pokud máte nějaký další zajímavý příklad jejich užití, určitě se podělte v diskusi.

Našli jste v článku chybu?

20. 7. 2011 16:18

Tar (neregistrovaný)

sem divnej kdyz si myslim ze hlavni vyhoda aptitude je v UI?

17. 7. 2011 21:34

Perfektní článek, Petře. Budeš pokračovat? Aptitude (a vůbec debianí balíčkovací systém) toho má ještě hodně co nabídnout, bylo by moc fajn to dopodrobna rozebrat a popsat.

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Stoná vaše dítě často? Upravte mu jídelníček

Stoná vaše dítě často? Upravte mu jídelníček

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka