Skip navigation

Linux User Group Oldenburg [Tux]

DPKG for Beginners

Von Martin Schulze

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

Inhalt

  1. Welche Pakete sind installiert?
  2. In welchem Paket ist xterm enthalten?
  3. Zeige den Paketinformationen an
  4. Welche Dateien gehören sonst noch zu xterm?
  5. Welche Abhängigkeiten bestehen zu anderen Paketen?
  6. Welche anderen Pakete benutzen xf86-3.3.6-20?

Welche Pakete sind installiert?

Mit dem Befehl dpkg --list bzw. dpkg -l 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.

In welchem Paket ist xterm enthalten?

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

  $ dpkg --search bin/xterm
  xterm: /usr/X11R6/bin/xterm

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

Zeige den Paketinformationen an

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

  $ dpkg --status xterm
  Package: xterm
  Status: install ok installed
  Priority: optional
  Section: x11
  Installed-Size: 900
  Maintainer: Branden Robinson 
  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.

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

  $ apt-cache show xterm
  Package: xterm
  Priority: optional
  Section: x11
  Installed-Size: 900
  Maintainer: Branden Robinson 
  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.

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.

Welche Dateien gehören sonst noch zu xterm?

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ß.

  $ 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

Welche Abhängigkeiten bestehen zu anderen Paketen?

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

  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)

Welche anderen Pakete benutzen xterm?

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 libxaw7. Der folgende Befehl zeigt an, welche sonstigen Pakete von dieser Bibliothek abhängen, unabhängig davon, ob sie installiert sind:

  $ 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: 

Wenn libxaw7 gelöscht werden soll, müssen demnach auch groff und emacs20 gelöscht werden.