// Datei: ./werkzeuge/paketoperationen/paketinhalte-anzeigen-apt-file.adoc

// Baustelle: Fertig

[[paketinhalte-anzeigen-apt-file]]

=== Paketinhalte anzeigen (`apt-file`) ===

// Stichworte für den Index
(((apt-file, list)))
(((apt-file, show)))
(((dglob, -af)))
(((dglob, -f)))
(((dlocate, -ls)))
(((dpkg, -c)))
(((dpkg, --contents)))
(((dpkg, -L)))
(((dpkg, --listfiles)))
(((dpkg-deb, -c)))
(((dpkg-deb, --contents)))
(((dpkg-query, -L)))
(((dpkg-query, --listfiles)))
(((Paket, Inhalte anzeigen)))
In einem Paket sind stets mehrere Dateien zusammengefasst. Mit den sechs
Werkzeugen `dpkg`, `dpkg-deb`, `dpkg-query`, `dlocate`, `apt-file` und
`dglob` zeigen Sie den Inhalt eines Pakets an. Dabei sind `dpkg-deb` und
`dpkg-query` Hilfsprogramme von `dpkg` und verstehen die gleichen
Schalter.

Es sind mehrere Fälle zu unterscheiden, die jeweils unterschiedliche
Aufrufe nachsichziehen:

das Paket ist bereits installiert:: 
`dpkg -L` 'Paketname', `dpkg-query -L` 'Paketname', `dlocate -ls`
'Paketname' sowie mittels `dglob -f` 'Paketname'. Der Parameter
'Paketname' bezeichnet lediglich den Namen des Pakets (siehe
<<benennung-eines-debian-pakets>>) ohne Angabe der Versionsnummer.

das Paket ist noch nicht installiert:: 
`dpkg -c` 'deb-Datei' oder `dpkg-deb -c` 'deb-Datei'. Der Parameter
'deb-Datei' ist ein Paketarchiv in Form einer lokal vorliegenden Datei.
Befindet sich die Datei nicht im aktuellen Verzeichnis, von dem aus Sie
das Kommando aufrufen, ergänzen Sie im Aufruf den dazugehörigen
Verzeichnispfad, in dem das Paketarchiv liegt.

das Paket muss nicht installiert sein, kann aber:: 
`apt-file show` 'Paketname', `apt-file list` 'Paketname' und `dglob -af`
'Paketname'. Der Parameter 'Paketname' bezeichnet hier lediglich den
Namen eines Pakets (siehe <<benennung-eines-debian-pakets>>) ohne Angabe
der Versionsnummer.

==== `dpkg -L` 'Paketname' ====

// Stichworte für den Index
(((dpkg, -L)))
(((dpkg, --listfiles)))
(((dpkg-query, -L)))
(((dpkg-query, --listfiles)))
Die Langform des Schalters ist `--listfiles`. Beide Schalter versteht
ebenso das Hilfsprogramm `dpkg-query` und erzeugt die gleiche Ausgabe.
Damit listen Sie den Paketinhalt mit allen Pfaden auf. Jede
Verzeichnisebene ist separat aufgeführt. Das nachfolgende Beispiel
verdeutlicht das am Paket 'xara-gtk'.

.Auflistung des Paketinhalts mit allen Pfaden via `dpkg`
----
$ dpkg -L xara-gtk 
/.
/etc
/etc/xara.config
/etc/xara-gtkrc-2.0
/usr
/usr/bin
/usr/bin/xara
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/xara.1.gz
/usr/share/menu
/usr/share/menu/xara-gtk
/usr/share/doc
/usr/share/doc/xara-gtk
/usr/share/doc/xara-gtk/copyright
/usr/share/doc/xara-gtk/changelog.gz
$
----

==== `dlocate -L` 'Paketname' ====

// Stichworte für den Index
(((dlocate, -L)))
Eine identische Ausgabe zum vorherigen `dpkg`-Aufruf ermöglicht Ihnen
das Programm `dlocate` <<Debian-Paket-dlocate>> mit dem Schalter `-L`.
Beachten Sie hierbei jedoch, dass `dlocate` die Angabe des Paketnamens
als regulären Ausdruck interpretiert. 

==== `dlocate -ls` 'Paketname' ====

// Stichworte für den Index
(((dlocate, -ls)))
Nutzen Sie statt `-L` hingegen den Schalter `-ls`, wird die Ausgabe sehr
ausführlich. Es entspricht dem Aufruf des UNIX-Kommandos `ls -ldF`
bezogen auf alle Dateien, die in dem Paket enthalten sind.

.Auflistung des Paketinhalts in ausführlicherer Form via `dlocate`
----
$ dlocate -ls xara-gtk
drwxr-xr-x   24 root root    4096 Mär 13 09:44 /./
drwxr-xr-x  182 root root   12288 Jun 22 23:21 /etc/
-rw-r--r--    1 root root     658 Jun 11  2010 /etc/xara.config
-rw-r--r--    1 root root     136 Jun 11  2010 /etc/xara-gtkrc-2.0
drwxr-xr-x   11 root root    4096 Jan  8 00:44 /usr/
drwxr-xr-x    2 root root  110592 Jun 13 16:34 /usr/bin/
-rwxr-xr-x    1 root root 1828064 Mai 21  2012 /usr/bin/xara*
drwxr-xr-x  396 root root   12288 Jun 13 16:34 /usr/share/
drwxr-xr-x 2292 root root   77824 Jun 13 16:34 /usr/share/doc/
drwxr-xr-x    2 root root    4096 Jan  8 01:55 /usr/share/doc/xara-gtk/
-rw-r--r--    1 root root    5488 Mai 20  2012 /usr/share/doc/xara-gtk/changelog.gz
-rw-r--r--    1 root root    1281 Apr 18  2011 /usr/share/doc/xara-gtk/copyright
drwxr-xr-x   50 root root    4096 Jan  8 01:56 /usr/share/man/
drwxr-xr-x    2 root root  131072 Jun 13 16:34 /usr/share/man/man1/
-rw-r--r--    1 root root    6121 Mai 21  2012 /usr/share/man/man1/xara.1.gz
drwxr-xr-x    2 root root    4096 Jun 13 16:34 /usr/share/menu/
-rw-r--r--    1 root root     160 Apr 18  2011 /usr/share/menu/xara-gtk
$
----

==== `dpkg -c` 'deb-Datei' ====

// Stichworte für den Index
(((dpkg, -c)))
(((dpkg, --contents)))
(((dpkg-deb, -c)))
(((dpkg-deb, --contents)))
Sie verwenden den Schalter `-c`, um sich den Inhalt eines `deb`-Pakets
anzeigen zu lassen (Langform `--contents`). Dieses Paket wird `dpkg` als
Parameter übergeben und kann sowohl eine Datei in einem lokalen
Verzeichnis bezeichnen, als auch den Namen eines Archivs. Im Gegensatz
zu `dpkg -L` muss das Paket nicht auf ihrem System installiert sein.
Intern übergibt `dpkg` die Ausführung an `dpkg-deb`, welches Sie auch
separat aufrufen können.

.Auflistung des Paketinhalts mit allen Informationen via `dpkg`
----
$ dpkg -c /var/cache/apt/archives/xara-gtk_1.0.31_i386.deb 
drwxr-xr-x root/root         0 2012-05-21 01:04 ./
drwxr-xr-x root/root         0 2012-05-21 01:04 ./etc/
-rw-r--r-- root/root       658 2011-04-18 19:29 ./etc/xara.config
-rw-r--r-- root/root       136 2011-04-18 19:29 ./etc/xara-gtkrc-2.0
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/bin/
-rwxr-xr-x root/root   1828064 2012-05-21 01:04 ./usr/bin/xara
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/share/
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/share/man/
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/share/man/man1/
-rw-r--r-- root/root      6121 2012-05-21 01:04 ./usr/share/man/man1/xara.1.gz
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/share/menu/
-rw-r--r-- root/root       160 2011-04-18 19:28 ./usr/share/menu/xara-gtk
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/share/doc/
drwxr-xr-x root/root         0 2012-05-21 01:04 ./usr/share/doc/xara-gtk/
-rw-r--r-- root/root      1281 2011-04-18 19:28 ./usr/share/doc/xara-gtk/copyright
-rw-r--r-- root/root      5488 2012-05-20 23:18 ./usr/share/doc/xara-gtk/changelog.gz
$
----

==== `apt-file show` 'Paketname' und `apt-file list` 'Paketname' ====

// Stichworte für den Index
(((apt-file, list)))
(((apt-file, show)))
Die beiden Optionen `show` und `list` des Werkzeugs `apt-file` sind
synonym zueinander und liefern den gleichen Inhalt wie `dpkg -L`. Dabei
ist die Darstellung von `apt-file` jedoch deutlich kompakter.

.Paketinhalt in kompakter Form mittels `apt-file`
----
$ apt-file show xara-gtk
xara-gtk: /etc/xara-gtkrc-2.0
xara-gtk: /etc/xara.config
xara-gtk: /usr/bin/xara
xara-gtk: /usr/share/doc/xara-gtk/changelog.gz
xara-gtk: /usr/share/doc/xara-gtk/copyright
xara-gtk: /usr/share/man/man1/xara.1.gz
xara-gtk: /usr/share/menu/xara-gtk
$
----

==== Einsatz von `dglob` ====

// Stichworte für den Index
(((dglob, -af)))
(((dglob, -f)))
(((Debianpaket, debian-goodies)))
Analog zu `apt-file` arbeitet das Werkzeug `dglob` aus dem Paket
'debian-goodies' <<Debian-Paket-debian-goodies>>. Die Ausgabe ist
ähnlich kompakt wie von `apt-file`. Der Schalter `-f` dient dabei zur
Ausgabe der Dateien im angefragten Paket, was wir nachfolgend erneut
anhand des Pakets 'xara-gtk' illustrieren.

.Ergebnis der Recherche zum Paket 'xara-gtk'
----
$ dglob -f xara-gtk
/etc/xara.config
/etc/xara-gtkrc-2.0
/usr/bin/xara
/usr/share/man/man1/xara.1.gz
/usr/share/menu/xara-gtk
/usr/share/doc/xara-gtk/copyright
/usr/share/doc/xara-gtk/changelog.gz
$
----

// Stichworte für den Index
(((dglob, -a)))
(((dglob, -af)))
(((Debianpaket, dctrl-tools)))
(((Debianpaket, debian-goodies)))
(((grep-aptavail)))
Das Kommando `dglob` agiert üblicherweise nur auf den bereits
installierten Paketen. Mit dem Schalter `-a` weiten Sie Ihre Recherche
auf alle verfügbaren Pakete aus -- auch auf diejenigen, die noch nicht
installiert sind. Für diesen Schritt setzt `dglob` auf das Programm
`grep-aptavail` aus dem Paket 'dctrl-tools' <<Debian-Paket-dctrl-tools>>
auf. Nähere Informationen zu 'dctrl-tools' erfahren Sie unter
<<erweiterte-paketklassifikation-mit-debtags>>.

// Datei (Ende): ./werkzeuge/paketoperationen/paketinhalte-anzeigen-apt-file.adoc
