#include <LUGO.style>

<page name="DPKG for Beginners">

<h3>DPKG for Beginners</h3>

<p><em>Von Martin Schulze</em>

<p>Auf Debian-basierten Systemen arbeitet <code>dpkg</code> als
Paketmanager.  In Verbindung mit <code>apt-get</code> und
<code>apt-cache</code> bildet es ein ein sehr mächtiges Trio zur
Verwaltung des Systems.  Dieser Artikel zeigt ein paar einfache
Befehle am Beispiel von xterm

<h3>Inhalt</h3>

<ol>
<li><a href="#sect1">Welche Pakete sind installiert?</a>
<li><a href="#sect2">In welchem Paket ist xterm enthalten?</a>
<li><a href="#sect3">Zeige den Paketinformationen an</a>
<li><a href="#sect4">Welche Dateien gehören sonst noch zu xterm?</a>
<li><a href="#sect5">Welche Abhängigkeiten bestehen zu anderen Paketen?</a>
<li><a href="#sect6">Welche anderen Pakete benutzen xf86-3.3.6-20?</a>
</ol>


<a name="sect1">
<h3>Welche Pakete sind installiert?</h3>
</a>

<p>Mit dem Befehl <code>dpkg --list</code> bzw. <code>dpkg -l</code>
erhalten Sie die Liste aller installierten Pakete sowie deren Status,
Versionsnummer und eine kurze Beschreibung.  Wird ein Parameter
angegeben, gibt es nur die Informationen zu dem angegebenen Paket.
Der Parameter darf Wildcards ('*') enthalten.</p>

<a name="sect2">
<h3>In welchem Paket ist xterm enthalten?</h3>
</a>

<p>Mit dem Befehl <code>dpkg --search</code> wird in den internen
Datenbanken nach jedem Auftreten des angegebenen Schlüsselwortes
gesucht.  Um die Ausgabe etwas zu beschränken, wird nach
<code>bin/xterm</code> gesucht, da <code>xterm</code> ein Programm ist:

<protect>
<pre>
  $ dpkg --search bin/xterm
  xterm: /usr/X11R6/bin/xterm
</pre>
</protect>

<p>Das Paket heißt also genauso wie auch das Programm, praktisch.

<a name="sect3">
<h3>Zeige den Paketinformationen an</h3>
</a>

<p>Zu jedem Paket sind umfassende Informationen gespeichert, die wie
folgt angezeigt werden:

<protect>
<pre>
  $ dpkg --status xterm
  Package: xterm
  Status: install ok installed
  Priority: optional
  Section: x11
  Installed-Size: 900
  Maintainer: Branden Robinson <branden@debian.org>
  Source: xfree86
  Version: 4.0.2-1
  Replaces: xbase (<< 3.3.2.3a-2)
  Provides: x-terminal-emulator
  Depends: libc6 (>= 2.1.97), libfreetype6, libncurses5, libxaw7 (>= 4.0.1-1), xlibs (>= 4.0.1-11)
  Conflicts: xbase (<< 3.3.2.3a-2)
  Conffiles:
   /etc/X11/app-defaults/XTerm 40e72fc97237c014122f7e23b81d6495
   /etc/X11/app-defaults/XTerm-color b3783b3fbdcd0d1ab556a8d015caa271
  Description: X terminal emulator
   xterm is a terminal emulator for the X Window System.  It provides DEC VT102
   and Tektronix 4014 compatible terminals for programs that cannot use the
   window system directly.  This version implements ISO/ANSI colors and most of
   the control sequences used by DEC VT220 terminals.
</pre>
</protect>

<p>Da <code>dpkg</code> in der internen Datenbank nachsieht, stehen
diese Informationen nur für installierte Pakete zur Verfügung.  Für
Pakete, die nicht installiert sind, muß <code>apt-cache</code>
verwendet werden:

<protect>
<pre>
  $ apt-cache show xterm
  Package: xterm
  Priority: optional
  Section: x11
  Installed-Size: 900
  Maintainer: Branden Robinson <branden@debian.org>
  Architecture: i386
  Source: xfree86
  Version: 4.0.2-1
  Replaces: xbase (<< 3.3.2.3a-2)
  Provides: x-terminal-emulator
  Depends: libc6 (>= 2.1.97), libfreetype6, libncurses5, libxaw7 (>= 4.0.1-1), xlibs (>= 4.0.1-11)
  Conflicts: xbase (<< 3.3.2.3a-2)
  Filename: pool/main/x/xfree86/xterm_4.0.2-1_i386.deb
  Size: 458308
  MD5sum: bc6bcea8873d07f95da4526da9e89589
  Description: X terminal emulator
   xterm is a terminal emulator for the X Window System.  It provides DEC VT102
   and Tektronix 4014 compatible terminals for programs that cannot use the
   window system directly.  This version implements ISO/ANSI colors and most of
   the control sequences used by DEC VT220 terminals.
</pre>
</protect>

<p>Ein paar Informationen untescheiden sich zwischen den beiden
Varianten, Informationen über Konfigurationsdateien können nur bei
bereits installierten  Paketen angezeigt werden, der Dateiname im
Archiv steht dagegen nur bei der zweiten Variante zur Verfügung.

<a name="sect4">
<h3>Welche Dateien gehören sonst noch zu xterm?</h3>
</a>

<p>Oft ist es von Bedeutung, welche Dateien in einem Paket enthalten
sind.  Wenn Modifikationen vorgenommen werden müssen, dann findet man
so vielleicht die Datei, die man bearbeiten muß.

<protect>
<pre>
  $ dpkg --listfiles xterm
  /.
  /etc
  /etc/X11
  /etc/X11/app-defaults
  /etc/X11/app-defaults/XTerm
  /etc/X11/app-defaults/XTerm-color
  /usr
  /usr/X11R6
  /usr/X11R6/bin
  /usr/X11R6/bin/xterm
  /usr/X11R6/man
  /usr/X11R6/man/man1
  /usr/X11R6/man/man1/xterm.1x.gz
  /usr/share
  /usr/share/doc
  /usr/share/doc/xterm
  /usr/share/doc/xterm/xterm.log.html
  /usr/share/doc/xterm/xterm.faq.html
  /usr/share/doc/xterm/xterm.termcap.gz
  /usr/share/doc/xterm/xterm.terminfo.gz
  /usr/share/doc/xterm/changelog.Debian.gz
  /usr/share/doc/xterm/README.Debian
  /usr/share/doc/xterm/copyright
  /usr/share/doc/xterm/ctlseqs.ps.gz
  /usr/share/doc/xterm/ctlseqs.txt.gz
  /usr/share/doc-base
  /usr/share/doc-base/xterm-faq
  /usr/lib
  /usr/lib/menu
  /usr/lib/menu/xterm
</pre>
</protect>

<a name="sect5">
<h3>Welche Abhängigkeiten bestehen zu anderen Paketen?</h3>
</a>

<p>Die Abhängigkeiten zu anderen Paketen sowie die Konflikte werden
zusammen mit dem Status des Pakets ausgegeben (s.o.).  Die folgenden
Zeilen sind relevant:

<protect>
<pre>
  Replaces: xbase (<< 3.3.2.3a-2)
  Provides: x-terminal-emulator
  Depends: libc6 (>= 2.1.97), libfreetype6, libncurses5, libxaw7 (>= 4.0.1-1), xlibs (>= 4.0.1-11)
  Conflicts: xbase (<< 3.3.2.3a-2)
</pre>
</protect>

<a name="sect6">
<h3>Welche anderen Pakete benutzen xterm?</h3>
</a>

<p>Wer auf seinem Rechner aufräumen möchte und Pakete löschen möchte,
sollte vorher sicherstellen, daß keine anderen Pakete diese
verwenden.  Dieses ist hauptsächlich bei Bibliotheken und weniger bei
Programmen wichtig, daher nehmen wir hier als Beispiel
<code>libxaw7</code>.  Der folgende Befehl zeigt an, welche sonstigen Pakete von
dieser Bibliothek abhängen, unabhängig davon, ob sie installiert sind:

<protect>
<pre>
  $ apt-cache showpkg libxaw7
  Package: libxaw7
  Versions: 4.0.2-1(/var/state/apt/lists/ftp.rfc822.org_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status),
  Reverse Depends: 
    xinvaders,libxaw7
    cxterm-common,libxaw7
    axe,libxaw7
    xvncviewer,libxaw7
    xvile,libxaw7
    xtide,libxaw7
    xterm,libxaw7
    xrn,libxaw7
    xoj,libxaw7
    xmon,libxaw7
    xmem,libxaw7
    xkeycaps,libxaw7
    xjump,libxaw7
    xipmsg,libxaw7
    xemeraldia,libxaw7
    xemacs21-nomule,libxaw7
    xemacs21-mule-canna-wnn,libxaw7
    xemacs21-mule,libxaw7
    xdvik-ja,libxaw7
    xdm,libxaw7
    xcolors,libxaw7
    xbomb,libxaw7
    xbill,libxaw7
    xbase-clients,libxaw7
    task-x-window-system,libxaw7
    snake4,libxaw7
    procmeter3,libxaw7
    libxaw-dev,libxaw7
    kterm,libxaw7
    kdrill,libxaw7
    hanterm,libxaw7
    groff,libxaw7
    emacs20-dl,libxaw7
    drscheme,libxaw7
    ddd,libxaw7
    aewm,libxaw7
    acfax,libxaw7
  Dependencies: 
  4.0.2-1 - libc6 (2 2.1.97) xlibs (2 4.0.1-11) 
  Provides: 
  4.0.2-1 - 
  Reverse Provides: 
</pre>
</protect>

<p>Wenn <code>libxaw7</code> gelöscht werden soll, müssen demnach auch
<code>groff</code> und <code>emacs20</code> gelöscht werden.

</page>

# Local variables:
# mode: indented-text
# mode: iso-accents
# end:
