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
- Welche Pakete sind installiert?
- In welchem Paket ist xterm enthalten?
- Zeige den Paketinformationen an
- Welche Dateien gehören sonst noch zu xterm?
- Welche Abhängigkeiten bestehen zu anderen Paketen?
- 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 RobinsonSource: 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 RobinsonArchitecture: 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.