Kapitel 5. Paketmanagement
Zurück | 5.18 `apt-cache` | Weiter

## 5.18 `apt-cache`

Mit `apt-cache` können die verschiedensten Abfragen zu den bekannten Paketen (also auch zu den noch nicht installierten) erstellt werden. Dies beschränkt sich nicht nur auf Paketnamen oder die zu einem Paket gehörenden Dateinamen, sondern es können auch Informationen zu den Metadaten erfragt werden.

Wenn Sie nicht die Option `-h` oder `--help` benutzen, muss mindestens eines der folgenden Kommandos angegeben werden.

`add`

  fügt die angegebene Package-Datei dem Package-Cache hinzu.

`gencaches`

  Diese Option bewirkt das Gleiche wie `apt-get check`. Es werden die Source- und Package-Caches aus den Informationen in `/etc/apt/sources.list` und `/var/lib/dpkg/status` erstellt.

`showpkg`

  Diese Option zeigt Informationen über die weiterhin auf der Kommandozeile angegebenen Pakete. Es werden die verfügbaren Versionen der Pakete sowie die gesamten Abhängigkeiten dieser Pakete angezeigt. Hierbei wird zwischen so genannten „forward“-Dependencies und „reverse“-Dependencies unterschieden. Forward-Dependencies (dies sind die im normalen Sprachgebrauch verwendeten Abhängigkeiten) beziehen sich auf die Pakete, die das angefragte Paket benötigt, um einwandfrei zu funktionieren. Reverse-Dependecies beschreiben die Pakete, die das angefragte Paket benötigen, um zu funktionieren. Ein Beispiel: `apt-cache showpkg bash` gibt folgendes Ergebnis aus:

      Package: bash
      Versions:
      2.05a-12(/var/lib/apt/lists/192.168.1.1_home_ftp_debian_dists_sid_
      main_binary-i386_Packages)(/var/lib/dpkg/status)
      2.05a-11(/var/lib/apt/lists/192.168.1.1_home_ftp_debian_dists_woody_
      main_binary-i386_Packages)

      Reverse Depends:
        kernel-patch-ltt,bash 2.0
        kernel-patch-lkcd,bash 2.0
        kernel-patch-kdb,bash 2.0
        kernel-patch-acl,bash 2.0
        horde2,bash
        cron-apt,bash 2.03-6
        common-lisp-controller,bash 2.04-9
        cdcontrol,bash 2.0
        bash-doc,bash 2.03-1
        bash-builtins,bash 2.05a-12
        base-files,bash 2.03-3
        txt2regex,bash 2.04
        openmosix,bash 2.0
        mosix,bash 2.0
        mkrboot,bash
        mason,bash
        kernel-patch-ulog,bash 2.0
        kernel-patch-ttl,bash 2.0
        kernel-patch-ltt,bash 2.0
        kernel-patch-kiobuf-bigmem,bash 2.0
        kernel-patch-kiobuf,bash 2.0
        kernel-patch-kdb,bash 2.0
        kernel-patch-irc,bash 2.0
        kernel-patch-badram,bash 2.0
        htmlheadline,bash 2.04-1
        horde,bash 2.03-6
        gopherweblink,bash
        gibraltar-bootsupport,bash
        foomatic-bin,bash 2.05
        diffmon,bash 2.0
        cron-apt,bash 2.03-6
        common-lisp-controller,bash 2.04-9
        colorgcc,bash
        cdcontrol,bash 2.0
        bug,bash 2.04-1
        bash-doc,bash 2.03-1
        bash-builtins,bash 2.05a-11
        base-files,bash 2.03-3
      Dependencies:
      2.05a-12 - base-files (2 2.1.12) libc6 (2 2.2.4-4) libncurses5
      (2 5.2.20020112a-1) grep-dctrl (0 (null)) bash-completion (0
      (null)) bash-doc (1 2.05-1) bash-completion (0 (null))
      2.05a-11 - base-files (2 2.1.12) libc6 (2 2.2.4-4) libncurses5
      (2 5.2.20020112a-1) bash-completion (0 (null)) bash-doc (1 2.05-1)
      bash-completion (0 (null))
      Provides:
      2.05a-12 -
      2.05a-11 -
      Reverse Provides:

  Es müssen also, damit dieses Paket funktioniert, mindestens die unter „Dependencies“ aufgeführten Pakete installiert sein. Eine weitere wichtige Information sind die „Reverse Depends“. Dies sind Pakete, die von diesem Paket (`bash`) abhängen.

`stats`

  Es wird eine Statistik über den aktuellen Cache ausgegeben. Es sind keine weiteren Argumente notwendig. Folgende Informationen werden ausgegeben:

      fr@sushi:~$ apt-cache stats
      Total Package Names : 8953 (358k)
        Normal Packages: 6872
        Pure Virtual Packages: 259
        Single Virtual Packages: 176
        Mixed Virtual Packages: 115
        Missing: 1531
      Total Distinct Versions: 9133 (438k)
      Total Dependencies: 47613 (1143k)
      Total Ver/File relations: 19322 (309k)
      Total Provides Mappings: 1889 (37.8k)
      Total Globbed Strings: 110 (1273)
      Total Dependency Version space: 179k
      Total Slack space: 86.3k
      Total Space Accounted for: 2374k

  Total Package Names - Anzahl der Paketnamen, die im Cache gefunden wurden.

  Normal Packages - Dies sind Pakete, deren Namen in einer Abhängigkeit zu einem anderen Paket stehen; hierunter fällt eine große Zahl der Pakete.

  Pure Virtual Packages - Anzahl der „virtuellen“ Paketnamen im Cache. Dies sind Pakete, die ein Paket zur Verfügung stellen, deren Name aber nicht mit diesem zu tun hat. Als Beispiel sei hier `mail-transport-agent` genannt: Einige Pakete (beispielsweise `exim`, `qmail` und `sendmail`) stellen das Paket `mail-transport-agent` zur Verfügung, es gibt aber kein Programm mit dem Namen `mail-transport-agent`.

  Single Virtual Packages - Dies ist die Anzahl der Pakete, die ein virtuelles Paket zur Verfügung stellen, das aber nur einmal im Cache auftaucht. Das virtuelle Paket `X11-text-viewer` wird beispielsweise nur von `xless` zur Verfügung gestellt.

  Mixed Virtual Packages - Anzahl der Pakete, die sowohl als virtuelle als auch als reale Pakete vorhanden sind. `debconf` ist als reales Paket vorhanden, wird aber auch von `debconf-tiny` zur Verfügung gestellt.

  Missing - Pakete, die in einer Abhängigkeit benannt werden, aber nicht im Cache zu finden sind. Dies kann vorkommen, wenn kein Zugriff auf eine komplette Debian-Distribution gegeben ist oder wenn Pakete aus der Distribution entfernt wurden.

  Total Distinct Versions - Die Anzahl der Paketversionen im Cache. Diese ist im Normalfall gleich der Anzahl der gesamten Pakete. Wenn jedoch zwei Distributionen (beispielsweise „stable“ und „testing“) benutzt werden, kann es vorkommen, dass mehrere Versionen eines Pakets verfügbar sind. In diesem Fall kann die Zahl deutlich über der der gesamten Pakete liegen.

  Total Dependencies - Die Anzahl der gesamten Abhängigkeiten zwischen allen Paketen im Cache.

  Total Ver/File relations - Die Gesamtzahl an Version/Datei-Beziehungen.

  Total Provides Mappings - Die Gesamtzahl an Bereitstellungen von Mappings.

  Total Globbed Strings - Gesamtanzahl von Mustern

  Total Dependency Version space - Gesamtmenge an Abhängigkeits/Versionsspeicher.

  Total Slack space - Gesamtmenge an Slack Speicher.

  Total Space Accounted for Gesamtmenge des Speichers.

`dump`

  Zeigt eine kurze Information zu jedem Paket an. Dies ist für den normalen Benutzer wenig sinnvoll und ist zur Fehlersuche für Entwickler gedacht.

`dumpavail`

  Zeigt eine Liste der verfügbaren Pakete.

`unmet`

  Zeigt eine Zusammenfassung aller nicht erfüllten Abhängigkeiten.

`show`

  Hat einen ähnlichen Effekt wie das Kommando `dpkg --print-avail` und zeigt die Paketinformationen für die angegebenen Pakete.

`search`

  Führt eine Volltextsuche über alle verfügbaren Paketdateien durch. Es können reguläre Ausdrücke benutzt werden. Die Paketnamen und Beschreibungen werden nach dem Suchbegriff durchsucht, und es werden der Paketname und die Kurzbeschreibung der entsprechenden Pakete ausgegeben. Wenn die Option `--full` angegeben wird, entspricht die Ausgabe der von `show`. Mit der Option `--names-only` wird die Paketbeschreibung nicht durchsucht; die Suche beschränkt sich auf den Paketnamen.

  Mehrere Suchargumente können angegeben werden und werden dann über eine UND-Verknüpfung ausgewertet.

`depends`

  Zeigt alle Abhängigkeiten eines Pakets an. Weiterhin werden alle anderen Pakete angezeigt, die die geforderten Abhängigkeiten erfüllen können.

      fr@sushi:~$ apt-cache depends bash
      bash
        Depends: base-files
        PreDepends: libc6
        PreDepends: libncurses5
        Suggests: grep-dctrl
        Conflicts: <bash-completion>
        Replaces: bash-doc
        Replaces: <bash-completion>

`policy`

  Die Option `policy` zeigt zu einem Paket die installierte sowie die verfügbaren Versionen aus den erreichbaren Quellen an.

      fr@sushi:~$ apt-cache policy bash
      bash:
        Installed: 2.05b-5
        Candidate: 2.05b-5
        Version Table:
       *** 2.05b-5 0
              500 ftp://ftp.freenet.de sid/main Packages
              100 /var/lib/dpkg/status
           2.05b-3 0
              500 ftp://ftp.freenet.de testing/main Packages
              500 ftp://ftp.freenet.de sarge/main Packages
           2.05a-11 0
              500 ftp://ftp.freenet.de woody/main Packages

`pkgnames`

  Zeigt eine Liste aller Paketnamen. Optional kann eine Zeichenkette angegeben werden, die als Suchpräfix verwendet wird.

`dotty`

  Dieser Option kann eine Liste von Paketnamen mitgegeben werden. Die Ausgabe erfolgt in einem Format, das vom Programm `dot` aus dem Paket GraphVis (http://www.research.att.com/sw/tools/graphviz/) gelesen werden kann. GraphVis ist auch als Debian-Paket verfügbar, kann also mittels `apt-get` installiert werden. Mit dieser Option und dem Programm `dot` kann eine grafische Darstellung der Paketabhängigkeiten erstellt werden. Normalerweise werden alle Abhängigkeiten verfolgt, was zu sehr großen Dateien führen kann.

  Um die Grafik etwas zu verkleinern, kann die Zeile

      APT::Cache::GivenOnly "true";

  in der APT-Konfigurationsdatei `/etc/apt/apt.conf` hinzugefügt werden. Dies bewirkt das nur die auf der Kommandozeile angegebenen Pakete ausgewertet werden. Es kann passieren das eine sehr lange Liste von Paketen zum Abbruch des Programmes führt.

  Das Ergebnis ist eine Grafik die unterschiedliche Symbole für Pakete verwendet. Normale Pakete werden als schwarzes Rechteck dargestellt. Direkt abhängige Pakete (provides) werden als Trapez dargestellt. Diamand-förmige Pakete sind mixed-provides und fehlende Pakete werden als Hexagon dargestellt. Orange-farbene Rechtecke bedeuten das die rekursive Suche abgebrochen wurde. Blaue Linien stellen Pre-Dependencies dar und grüne Linien stehen für Konflikte.

  Hier zwei kleine Beispiele dafür, wie diese Option sinnvoll eingesetzt werden kann:

       apt-cache dotty vim | dot -Tps > packgraph.ps

       apt-cache dotty $(dpkg --get-selections | grep -v deinstall \
                | awk 'print $1') | dot -Tps > packgraph.ps

  Abbildung 5.5. apt-cache dotty vim - Beispiel

  Beide Beispiele erzeugen eine Postscript-Datei `packgraph.ps`. Diese kann beispielsweise mit dem Programm `gv` angezeigt werden.

### Suchen ohne `apt-cache`

Die aus der Bash-Shell bekannte Vervollständigung von Dateinamen (mittels TAB-Taste) kann auch auf Debian-Pakete ausgeweitet werden. Hierzu ist die Datei `/etc/bash_completion` zu „sourcen“, beispielsweise durch das Kommando `source /etc/bash_completion`. Nun kann auch `apt-get install` durch das Drücken der Taste TAB vervollständigt werden.

Zurück | Nach oben | Weiter
5.17 `apt-rdepends` | Zum Anfang | 5.19 `apt-cacher`

© 1999-2006 Frank Ronneburg - Dieser Inhalt ist unter einem Creative Commons Namensnennung - Nicht-kommerziell - Keine Bearbeitung Lizenzvertrag lizenziert (creativecommons.org/licenses/by-nc-nd/2.0/de/legalcode).