Hlavní navigace

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

25. 8. 2003
Doba čtení: 4 minuty

Sdílet

Kromě toho, že se zmíníme o poměrně legrační akci programu "apt-get", která není dokumentována, si v tomto dílu také povíme něco o programu "apt-cache".

Hledání softwaru

Debian GNU/Linux je obrovskou distribucí, která obsahuje velké množství softwaru. Stabilní distribuce čítá přes 8710 balíčů, v distribucích testing a unstable můžeme najít ještě o několik tisíc balíčků více. Abychom byli schopni nainstalovat software, který chceme, musíme mít k dispozici nástroj, s jehož pomocí se můžeme v takovém nepřeberném množství softwaru orientovat. Na adrese www.debian.or­g/distrib/pac­kagesmáme k dispozici WWW rozhraní, které nám usnadní prohledávání archivu balíčků. To však není to „pravé ořechové“. Mnohem rychlejší je použít apt-cache.

Používáme apt-cache

Program apt-cache nám poskytuje prostředky pro práci s keší nástroje apt. Nejedná se však o keš stažených balíčků, o které jsme se bavili v minulém dílu, ale o keš metadat balíčků. Všeobecné informace o keši zjistíme příkazem apt-cache stats. Nás však více zajímá např. akce show, s jejíž pomocí zjistíme informace o libovolném balíčku v keši. Příkaz apt-cache show se chová podobně jako příkaz dpkg -p:

$ apt-cache show gaspell
Package: gaspell
Priority: optional
Section: utils
Installed-Size: 208
Maintainer: Domenico Andreoli <cavok@debian.org>
Architecture: i386
Version: 0.30-10
Depends: gdk-imlib1, libart2 (>= 1.2.13-5), libaspell10 (>= 0.33.7-1), libaudiofile0, libc6 (>= 2.2.4-4), libdb3 (>= 3.2.9-1), libesd0 (>= 0.2.23-1) | libesd-alsa0 (>= 0.2.23-1), libglib1.2 (>= 1.2.0), libgnome32 (>= 1.2.13-5), libgnomesupport0 (>= 1.2.13-5), libgnomeui32 (>= 1.2.13-5), libgtk1.2 (>= 1.2.10-4), libpspell4 (>= 0.12.1-1), libstdc++2.10-glibc2.2 (>= 1:2.95.4-0.010810), xlibs (>> 4.1.0)
Filename: pool/main/g/gaspell/gaspell_0.30-10_i386.deb
Size: 48906
MD5sum: e2b0f336918e673b1293057482fe097b
Description: Gnome front end to the aspell spell checker
 Gnome frontend to the Aspell library. It has a 'Lookup' facility to
 look up definitions from online dictionaries using the dict protocol.

$

Můžeme se tak rychle ujistit, zda daný balíček skutečně dělá to, co očekáváme. Ještě užitečnější akcí však pravděpodobně bude search. Ta nám umožňuje vyhledávat v názvech balíčků a v jejich popisu. Použijeme-li přepínač –names-only, probíhá vyhledávání pouze ve jménech. Chceme-li např. nainstalovat nějaký software na vypalování CD, dostaneme se po zadání patřičného dotazu poměrně rychle k cíli:

$ apt-cache search cd burn
bootcd-dvdplus - bootcd extension to use DVD+ media
cdbakeoven - common GUI for writing CDs under KDE
cdcontrol - A parallel burner that allow you to write to one or more CD-Writer at once
cdlabelgen - generates front cards and tray cards for CDs
cdrtoaster - Tcl/Tk front-end for burning cdrom
cdw - A console tool for burning CD's
cwcdr - Chez Wam CD Ripper
eroaster - The ECLiPt CD burning frontend
gcombust - GTK+ based CD mastering and burning program
gramofile - Transfer sound from gramophone records to CD
mp3burn - burn audio CDs directly from MP3, Ogg Vorbis, or FLAC files
multicd - Backup your data to CD-R/CD-RW
nautilus-cd-burner - CD Burning front-end for Nautilus
partimage - Linux/UNIX utility to save partitions in a compressed image file
partimage-doc - Partition Image User Documentation
webmin-burner - CD burning module for webmin
kreatecd - A KDE CD burner with an easy interface
$

Další zajímavou akcí je depends. Ta vypisuje závislosti balíčku a všechny balíčky, které mohou závislosti vyřešit. Např. balíčekgcompris-data doporučuje gcompris-sound. Takový balíček však neexistuje, protože je to pouze virtuální název, a existují balíčky, které gcompris-sound poskytují. Proto nám apt-cache vypíše:

$ apt-cache depends gcompris-data
gcompris-data
  Recommends: gcompris
 |Recommends: gcompris-sound-en
  Recommends: <gcompris-sound>
    gcompris-sound-de
    gcompris-sound-en
    gcompris-sound-es
    gcompris-sound-fr
    gcompris-sound-pt
$

A poslední akcí, kterou zmíníme, je showpkg. Tato akce vypíše informace o balíčcích, které zadáme jako další parametry. Je to však jiná množina informací než množina informací, kterou vypisuje akce show. Zejména se jedná o jméno balíčku, dostupné verze a reverzní i dopředné závislosti:

$ apt-cache showpkg gconf-editor
Package: gconf-editor
Versions:
0.4.0-1(/var/lib/apt/lists/ftp.de.debian.org_debian_dists_
testing_main_binary-i386_Packages)(/var/lib/dpkg/status)
0.1-5(/var/lib/apt/lists/ftp.de.debian.org_debian
_dists_stable_main_binary-i386_Packages)

Reverse Depends:
  gnome,gconf-editor
Dependencies:
0.4.0-1 - libatk1.0-0 (2 1.2.2) libc6 (2 2.3.1-1) libgconf2-4 (2 2.2.0) libglib2.0-0 (2 2.2.0) libgtk2.0-0 (2 2.2.0) liblinc1 (2 1:1.0.0) liborbit2 (2 1:2.6.0) libpango1.0-0 (2 1.2.0) libpopt0 (2 1.6.4)
0.1-5 - libatk1.0-0 (2 1.0.0) libc6 (2 2.2.4-4) libgconf2-4 (2 1.1.8) libglib2.0-0 (2 2.0.0) libgtk2.0-0 (2 2.0.0) liblinc1 (2 0.1.20) liborbit2 (2 2.3.106) libpango1.0-0 (2 1.0.0)
Provides:
0.4.0-1 -
0.1-5 -
Reverse Provides:
$

Reverzní závislosti jsou v některých případech poměrně dobrým pomocníkem. Vraťme se k příkladu, kde jsme hledali software na vypalování CD. Víme-li, že hledáme frontend k programu cdrecord, je nám také jasné, že balíček, který hledáme, závisí na balíčku cdrecord. Proto můžeme zadat příkaz apt-cache showpkg cdrecord a pak prozkoumat balíčky z výpisu Reverse Depends.

CS24_early

Závěrem

Sliboval jsem poněkud legrační akci programu apt-get. Popis programu apt-get jsme sice v minulém dílu uzavřeli, vzpomněl jsem si však ještě na jednu akci, která není dokumentovaná, a řekl jsem si, že bych ji mohl zmínit. Zkuste spustit příkaz apt-get moo. :-)

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

Byl pro vás článek přínosný?