Hlavní navigace

Balíčkovací systém distribuce Debian GNU/Linux: apt-file

Marcel Kolaja 22. 9. 2003

V minulém dílu jsme si mj. pověděli, jak se orientovat v nepřeberném množství balíčků pomocí programu "apt-cache". V osmé části seriálu o balíčkovacím systému se dozvíme, jak klást dotazy do databáze balíčků za použití nástroje "ara". Povíme si také něco o programu "apt-file".

Vyhledávací nástroj ara

Autor šikovného nástroje ara tvrdí, že dselect je noční můrou, a tak používal na vyhledávání informací o balíčcích grep nebo lessna /var/lib/dpkg­/available, což (jak jistě sami uznáte) není dvakrát pohodlné. Další možností bylo použití grep-dctrl, to ovšem také nebylo to pravé. Proto se rozhodl vytvořit nástroj jménem ara. Program je napsán v programovacím jazyce OCaml, což je objektová implementace jazyka Caml, tedy derivátu funkcionálního jazyka ML.

Nechť D je množina popisů balíčků v souboru /var/lib/dpkg­/available. Každý popis se skládá z množin uspořádaných dvojic (f, v), kde f je jméno pole (např. Description,De­pends, …) a v je jeho hodnota. D je tedy množina množin dvojic tvořící universum. Dotazy kladené programu ara vybírají podmnožiny universa D. Pomocí voleb programu pak lze zvolit, která pole z vybrané podmnožiny universa se mají zobrazit. Dotaz tvoří kombinace atomických výrazů. Atomické výrazy mají tvar pole operator1 retezec nebo pole operator2 regularni_vyraz, kde operator1 je = !=, <, <=<, > nebo >= a operator2 je =~ nebo !~. Regulární výrazy se uzavírají do lomítek. Pro podrobnější popis programu ara odkazuji čtenáře na dokumentaci k tomuto programu a uvedeme si už jen příklad:

$ ara -borders -fields Package,Size -table
 'Depends=~/cron/ & Size<30000'
+-----------+-------+
| Package   | Size  |
+-----------+-------+
| autolog   | 19628 |
| gcrontab  | 29700 |
| kde       | 7232  |
| logcheck  | 24846 |
| logrotate | 27932 |
| lsb       | 17194 |
| post-faq  | 18222 |
+-----------+-------+
$

Vyhledávací nástroj apt-file

Program apt-file je další z užitečných nástrojů pro vyhledávání balíčků. Jeho vyhledávací síla spočívá v souborech Contents, které najdeme na mirrorech archivů balíčků distribuce Debian (např. na českém mirroru se soubor Contents pro distribuci testing a architekturu i386nachází na ftp.cz.debian­.org/debian/dis­ts/testing/Con­tents-i386.gz). Syntaxe programu apt-file je následující:

apt-file [ volby ] [ akce ] [ vzor ]

Jako akci můžeme použít update, search, list nebo

purge. Akce update provede synchronizaci souboru Contents s jeho lokální kopií v keši (tou je implicitně adresář /var/cache/apt). Přesné umístění souboru Contents na mirroru je určeno záznamy v souboru sources.list (implicitně /etc/apt/sources­.list) a konfigurací v souboru

/etc/apt/apt-file.conf. Pro oficiální archivy balíčků distribuce Debian není nutné konfiguraci měnit. Stačí apt-file nainstalovat a hned ho můžete začít používat. Akce search vypíše seznam balíčků, které obsahují soubor vzor. Můžete tak rychle zjistit, který balíček obsahujehledaný soubor, aniž byste museli použít WWW rozhraní na www.debian.or­g/distrib/pac­kages. Příkaz apt-file search je podobný příkazu dpkg -S, ovšem s tím rozdílem, že prohledává i balíčky, které nejsou nainstalovány:
$ apt-file search Cdk.pm
libcdk-perl: usr/lib/perl5/Cdk.pm
libcdk-perl: usr/lib/perl5/Cdk.pm
$

Akce list vypíše obsah balíčku vzor. Zde můžeme opět hledat stejnou analogii jako v předchozím případě. Příkaz apt-file list je podobný příkazu dpkg -L, ovšem s tím rozdílem, že prohledává i balíčky, které nejsou nainstalovány:

$ apt-file list libcdk4
libcdk4: usr/lib/libcdk.so.4
libcdk4: usr/lib/libcdk.so.4
libcdk4: usr/lib/libcdk.so.4.0.9
libcdk4: usr/lib/libcdk.so.4.0.9
libcdk4: usr/share/doc/libcdk4/NOTES
libcdk4: usr/share/doc/libcdk4/NOTES
libcdk4: usr/share/doc/libcdk4/README.gz
libcdk4: usr/share/doc/libcdk4/README.gz
libcdk4: usr/share/doc/libcdk4/TODO
libcdk4: usr/share/doc/libcdk4/TODO
libcdk4: usr/share/doc/libcdk4/changelog.Debian.gz
libcdk4: usr/share/doc/libcdk4/changelog.Debian.gz
libcdk4: usr/share/doc/libcdk4/changelog.gz
libcdk4: usr/share/doc/libcdk4/changelog.gz
libcdk4: usr/share/doc/libcdk4/copyright
libcdk4: usr/share/doc/libcdk4/copyright
$

Poslední akcí programu apt-file je purge. Ta se postará o smazání všech souborů Contents z keše. A to už je poslední věc, kterou jsme se v tomto článku o programu apt-file dozvěděli. Více informací je možno nalézt jako obvykle v dokumentaci nebo ve zdrojovém kódu programu, který je umístěn přímo v souboru /usr/bin/apt-file, neboťapt-file je naprogramován v jazyce Perl.

Tento článek sponzoruje soLNet, s.r.o.

Našli jste v článku chybu?

23. 9. 2003 19:24

Pavel Cvrcek (neregistrovaný)

To, co rikate, je vec nazoru. Ja si naopak myslim, ze tyto clanky jsou prinosne. Berte na vedomi, ze existuji i jine nazory, nez je ten vas.

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

Přehledná titulka, průvodci, responzivita

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

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

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

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

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

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

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

Recenze Westworld: zavraždit a...

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?