Es gibt einige Oberflächen für das APT-System, die es signifikant
einfacher machen, Listen über verfügbare Pakete oder schon installierte
Pakete zu bekommen oder auch herauszufinden, zu welcher Sektion ein
Paket gehört, welche Priorität es hat, wie seine Beschreibung lautet,
etc.
Unser Ziel aber hier ist, APT selbst benutzen zu lernen. Wie können wir
also den Namen eines Paketes herausfinden, welches wir installieren
wollen?
Es gibt eine Reihe von Möglichkeiten für eine solche Aufgabe. Fangen wir
mit apt-cache an. Dieses Programm wird vom APT-System zum Warten seiner
Datenbank benutzt. Werfen wir nur einen kleinen Blick auf einige seiner
praktischeren Anwendungen.
Angenommen Sie wollen die alten Zeiten des Atari 2600 wieder aufleben
lassen. Sie möchten APT benutzen, um einen Atari-Emulator zu
installieren und dann Spiele herunterladen. Sie haben folgende
Möglichkeit:
root@linux #
apt-cache search atari
atari-fdisk-cross - Partition editor for Atari (running on non-Atari) circuslinux - The clowns are trying to pop balloons to score points! madbomber - A Kaboom! clone tcs - Character set translator. atari800 - Atari emulator for svgalib/X/curses stella - Atari 2600 Emulator for X windows xmess-x - X binaries for Multi-Emulator Super System
|
Wir finden verschiedene Pakete mit kurzen Beschreibungen. Um weitere
Informationen über ein bestimmtes Paket zu erhalten, können wir
folgendes machen:
root@linux #
apt-cache show stella
Package: stella Priority: extra Section: non-free/otherosfs Installed-Size: 830 Maintainer: Tom Lear <tom@trap.mtview.ca.us> Architecture: i386 Version: 1.1-2 Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1) Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb Size: 483430 MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5 Description: Atari 2600 Emulator for X windows Stella is a portable emulator of the old Atari 2600 video-game console written in C++. You can play most Atari 2600 games with it. The latest news, code and binaries for Stella can be found at: http://www4.ncsu.edu/~bwmott/2600
|
Mit dieser Ausgabe erhalten Sie eine Menge Details über das Paket, das
Sie installieren wollen (oder nicht wollen) inklusive der vollständigen
Beschreibung des Pakets. Wenn das Paket schon installiert ist und es
eine neuere Version gibt, bekommen Sie Informationen über beide
Versionen. Beispiel:
root@linux #
apt-cache show lilo
Package: lilo Priority: important Section: base Installed-Size: 271 Maintainer: Russell Coker <russell@coker.com.au> Architecture: i386 Version: 1:21.7-3 Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate Suggests: lilo-doc Conflicts: manpages (>>1.29-3) Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb Size: 143052 MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e Description: LInux LOader - The Classic OS loader can load Linux and others This Package contains lilo (the installer) and boot-record-images to install Linux, OS/2, DOS and generic Boot Sectors of other OSes. . You can use Lilo to manage your Master Boot Record (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
Package: lilo Status: install ok installed Priority: important Section: base Installed-Size: 190 Maintainer: Vincent Renardias <vincent@debian.org> Version: 1:21.4.3-2 Depends: libc6 (>= 2.1.2) Recommends: mbr Suggests: lilo-doc Description: LInux LOader - The Classic OS loader can load Linux and others This Package contains lilo (the installer) and boot-record-images to install Linux, OS/2, DOS and generic Boot Sectors of other OSes. . You can use Lilo to manage your Master Boot Record (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
|
Das erste in der Liste ist die neu verfügbare Version und das zweite die
installierte Version. Für generellere Informationen über ein Paket
können sie folgendes benutzen:
root@linux #
apt-cache showpkg penguin-command
Package: penguin-command Versions: 1.4.5-1(...)(/var/lib/dpkg/status)
Reverse Depends: Dependencies: 1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) Provides: 1.4.5-1 - Reverse Provides:
|
Und um nur herauszufinden, von welchen Paketen es abhängt:
root@linux #
apt-cache depends penguin-command
penguin-command Depends: libc6 Depends: libpng2 Depends: libsdl-mixer1.1 Depends: libsdl1.1 Depends: zlib1g
|
Zusammengefasst haben wir eine handvoll Waffen, die wir benutzen
können, um den Namen des Paketes herauszufinden, das wir installieren
wollen.
|
Ein Weg, den Namen eines Pakets zu finden, ist, den Namen einer
wichtigen Datei zu kennen, die sich in dem Paket befindet. Um zum
Beispiel das Paket zu finden, welches eine bestimmte .h Datei enthält,
die für das Kompilieren eines Programms benötigt wird, ist folgendes
auszuführen:
root@linux #
dpkg -S stdio.h
libc6-dev: /usr/include/stdio.h libc6-dev: /usr/include/bits/stdio.h perl: /usr/lib/perl/5.6.0/CORE/nostdio.h
|
oder:
root@linux #
dpkg -S /usr/include/stdio.h
libc6-dev: /usr/include/stdio.h
|
Um den Namen installierter Pakete herauszufinden, was zum Beispiel zum
Aufräumen der Festplatte nützlich sein kann, benutzen Sie:
root@linux #
dpkg -l | grep mozilla
ii mozilla-browse 0.9.6-7 Mozilla Web Browser
|
Das Problem mit diesem Befehl ist, dass er Paketnamen brechen kann. Im
obigen Beispiel ist der ganze Name des Pakets mozilla-browser. Um das
Problem zu beheben, können Sie die Umgebungsvariable COLUMNS
folgendermaßen benutzen:
root@linux #
COLUMNS=132 dpkg -l | grep mozilla
ii mozilla-browser 0.9.6-7 Mozilla Web Browser - core and browser
|
oder die Beschreibung bzw. einen Teil dieser wie im folgenden:
root@linux #
apt-cache search "Mozilla Web Browser"
mozilla-browser - Mozilla Web Browser
|
|
Sie kompilieren gerade ein Programm, und es gibt einen Fehler, da eine
.h Datei gebraucht wird, die Sie nicht haben. Das Programm auto-apt kann
Sie vor solchen Szenarios bewahren. Es fragt, ob es die benötigten
Pakete installieren soll, nachdem es den betroffenden Prozess gestoppt
hat und führt ihn fort, wenn die relevanten Pakete installiert sind.
Der Befehl sieht folgendermassen aus:
root@linux #
auto-apt run Kommando
|
Wobei Kommando das Kommando ist, das ausgeführt werden soll und evtl.
nicht vorhandene Dateien benötigt. Beispiel:
root@linux #
auto-apt run ./configure
|
Es wird fragen, ob die benötigten Pakete installiert werden sollen, und
apt-get automatisch aufrufen. Wenn X läuft, ersetzt eine grafische
Oberfläche die übliche Text-Oberfläche.
Auto-apt funktioniert mit einer Datenbank welche aktuell gehalten werden
muss, um effektiv zu funktionieren. Das erreicht man mit den Kommandos
auto-apt update, auto-apt updatedb und auto-apt update-local.
|
Wenn ein Paket installiert werden soll und Sie nicht herausfinden
können, wie es heißt, indem Sie mit apt-cache suchen, aber den
Dateinamen des Programms oder einer Datei, die zu dem Paket gehört
kennen, können Sie apt-file benutzen, um den Dateinamen zu finden. Das
wird folgendermaßen gemacht:
root@linux #
apt-file search Dateinamen
|
Es funktioniert genau wie dpkg -S, es zeigt Ihnen aber auch nicht
installierte Pakete, die die Datei enthalten. Man kann es auch dazu
benutzen, benötigte include-Dateien, die beim Kompilieren von Programmen
fehlen, zu installieren, allerdings ist auto-apt eine wesentlich bessere
Methode solche Fälle zu lösen, siehe Pakete nach Bedarf installieren.
Man kann auch den Inhalt von Paketen auflisten:
root@linux #
apt-file list Paketname
|
apt-file hat genau wie auto-apt eine Datenbank über die Dateien aller
Pakete und diese muss aktuell gehalten werden:
root@linux #
apt-file update
|
Normalerweise benutzt apt-file die gleiche Datenbank wie auto-apt, sehen
Sie Pakete nach Bedarf installieren.
|
Jedes Paket installiert in sein Dokumentationsverzeichnis
(/usr/share/doc/Paketname) eine Datei mit Namen changelog.Debian.gz,
welche die Liste der Änderungen gegenüber der letzten Version enthält.
Sie können diese Dateien z. B. mit Hilfe von zless lesen, aber es ist
nicht wirklich leicht, nach einem System-Upgrade nach dem changelog
jedes aktualisierten Paketes zu suchen.
Es gibt aber eine Möglichkeit, diese Aufgabe zu automatisieren mit Hilfe
eines Werkzeugs mit Namen apt-listchanges. Hierfür muss das Paket
apt-listchanges erst einmal installiert werden. Während der Installation
übernimmt Debconf die Installation. Beantworten Sie die Fragen nach
Ihren Bedürfnissen.
Die Option Soll apt-listchanges nach dem Anzeigen der Changelogs um
eine Bestätigung bitten? ist sehr nützlich, da es eine Liste der
Änderungen jedes Paketes, das während eines Upgrades installiert wird,
anzeigt und Ihnen die Möglichkeit bietet, diese vor dem Fortfahren
einzusehen. Wenn Sie hier sagen, dass Sie nicht fortfahren möchten, gibt
apt-listchanges einen Fehlercode zurück und APT bricht die Installation
ab.
Nachdem apt-listchanges installiert wurde, zeigt es die Liste der
Änderungen installierter Pakete an, wenn Pakete aus dem Netz (oder von
einer CD oder gemounteten Partition) heruntergeladen werden, bevor sie
installiert werden.
|
|