Ein kleines APT-Kochbuch
Was bedeutet APT?
APT ist eine Abkürzung für Advanced Packaging Tool und stellt eine Sammlung von Programmen und Skripten, welche das System und den Administrator bei der Installation und Verwaltung von Debian-Paketen unterstützt.
Liste der Quellen (sources.list)
Das "APT"-System benötigt eine Konfigurationsdatei, welche Informationen über den Ort der installierbaren und aktualisierbaren Pakete beinhaltet. Im allgemeinen nennt man diese Datei sources.list.
Die Quellen befinden sich in diesem Ordner:
/etc/apt/sources.list.d/
Innerhalb dieses Verzeichnisses befinden sich zwei Dateien:
/etc/apt/sources.list.d/debian.list und
/etc/apt/sources.list.d/sidux.list
Dies hat den Vorteil, dass leichter automatisch aus Spiegelservern gewählt werden kann ("mirror switching"), und auch das Ergänzen oder Austauschen von Quell-Listen ist so einfacher zu gestalten.
Eigene Quell-Listen-Dateien können mit der Benennung /etc/apt/sources.list.d/*.list hinzugefügt werden.
Alle ISOs von sidux nutzen folgende Quellserver in der Grundeinstellung:
#sidux # Freie Universität Berlin / Spline (Student Project LInux NEtwork), Deutschland deb ftp://ftp.spline.de/pub/sidux/debian/ sid main fix.main #deb-src ftp://ftp.spline.de/pub/sidux/debian/ sid main fix.main
Weitere Einträge für non-free findet man in der immer aktuellen sidux.list und debian.list:
#Debian # Unstable deb http://ftp.us.debian.org/debian/ unstable main contrib non-free #deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free # Testing #deb http://ftp.us.debian.org/debian/ testing main contrib non-free #deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free # Experimental #deb http://ftp.us.debian.org/debian/ experimental main contrib non-free #deb-src http://ftp.us.debian.org/debian/ experimental main contrib non-free
ZUR BEACHTUNG: in diesem Beispiel wird der US-amerikanische Debian-Spiegelserver beginnend mit ftp.us verwendet. Diese Einstellung kann als root geändert werden, indem der Landes-Code angepasst wird (zum Beispiel: ftp.at, ftp.de). Die meisten Länder haben lokale Debian-Spiegelserver zur Verfügung. Dies bietet für den Anwender eine höhere Anbindungsgeschwindigkeit und spart auch Bandbreite.
Liste der aktuell verfügbaren Debian-Server und deren Spiegelserver.
Um aktualisierte Informationen über die Pakete zu erhalten, wird eine Datenbank mit den benötigten Einträgen vorgehalten. Das Programm apt-get benutzt sie bei der Installation eines Pakets, um alle Abhängigkeiten aufzulösen und somit zu garantieren, dass die ausgewählten Pakete funktionieren. Die Erstellung bzw. Aktualisierung dieser Datenbank wird mit dem Befehl 'apt-get update' durchgeführt.
# apt-get update (mit folgender Ausgabe) Get:1 http://sidux.com sid Release.gpg [189B] Get:2 http://sidux.com sid Release.gpg [189B] Get:3 http://sidux.com sid Release.gpg [189B] Get:4 http://ftp.de.debian.org unstable Release.gpg [189B] Get:5 http://sidux.com sid Release [34.1kB] Get:6 http://ftp.de.debian.org unstable Release [79.6kB]
Wie Installiere ich ein neues Paket?
Vorausgesetzt, dass die APT-Datenbank aktualisiert ist und der Name des Pakets bekannt ist, reicht folgender Befehl (weiter unten wird gezeigt, wie man ein Paket finden kann):
# apt-get install gaim Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: libavahi-compat-howl0 libgstreamer0.10-0 Vorgeschlagene Pakete: libgadu3 libmeanwhile1 libzephyr3 gstreamer0.10-tools gstreamer0.10-plugins Empfohlene Pakete: gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-alsa gstreamer0.10-esd Die folgenden NEUEN Pakete werden installiert: gaim libavahi-compat-howl0 libgstreamer0.10-0 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 1 nicht aktualisiert. Es müssen 2365kB Archive geholt werden. Nach dem Auspacken werden 6578kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? Hole:1 http://ftp.de.debian.org unstable/main libavahi-compat-howl0 0.6.15-2 [35,4kB] Hole:2 http://ftp.de.debian.org unstable/main libgstreamer0.10-0 0.10.10-2 [651kB] Hole:3 http://ftp.de.debian.org unstable/main gaim 1:2.0.0+beta5-8 [1679kB] Es wurden 2365kB in 4s geholt (518kB/s) Wähle vormals abgewähltes Paket libavahi-compat-howl0. (Lese Datenbank ... 138649 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke libavahi-compat-howl0 (aus .../libavahi-compat-howl0_0.6.15-2_i386.deb) ... Wähle vormals abgewähltes Paket libgstreamer0.10-0. Entpacke libgstreamer0.10-0 (aus .../libgstreamer0.10-0_0.10.10-2_i386.deb) ... Wähle vormals abgewähltes Paket gaim. Entpacke gaim (aus .../gaim_1%3a2.0.0+beta5-8_i386.deb) ... Richte libavahi-compat-howl0 ein (0.6.15-2) ... Richte libgstreamer0.10-0 ein (0.10.10-2) ... Richte gaim ein (2.0.0+beta5-8) ...
Entfernen eines Pakets:
Der nächste Befehl entfernt ein Paket. Abhängigkeiten werden nicht mit vom System entfernt:
apt-get remove gaim
Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: gaim 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 1 nicht aktualisiert. Es müssen 0B Archive geholt werden. Nach dem Auspacken werden 4678kB Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? (Lese Datenbank ... 138763 Dateien und Verzeichnisse sind derzeit installiert.) Entferne gaim ...
In dem letzten Fall werden die Konfigurationsdateien nicht vom System entfernt, sie können bei einer späteren Neuinstallation des Programmpakets (im Beispielfall gaim) wieder verwendet werden. Sollen auch die Konfigurationsdateien entfernt werden, dann wird folgender Aufruf benötigt:
apt-get --purge remove gaim
Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: gaim* 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 1 nicht aktualisiert. Es müssen 0B Archive geholt werden. Nach dem Auspacken werden 4678kB Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? (Lese Datenbank ... 138763 Dateien und Verzeichnisse sind derzeit installiert.) Entferne gaim ... Lösche Konfigurationsdateien von gaim ...
Man beachte den Stern * am Ende des Paketnamen in der Ausgabe von apt. Der Stern signalisiert, dass auch die Konfigurationsdateien entfernt werden.
Downgraden/Hold eines Pakets
Manchmal kann es notwendig sein, auf eine frühere Version eines Pakets zurückzugreifen, da die neueste Version einen gravierenden Fehler aufweist.
Hold (Halten)
echo package hold|dpkg --set-selections
So beendet man den Hold eines Pakets
echo package install|dpkg --set-selections
So sucht man nach Paketen, die auf Hold gesetzt sind:
dpkg --get-selections | grep hold
Downgraden (Deaktualisierung)
Die Vorgangsweise wird am Paket kmahjongg demonstriert:
Aktivierung von "testing" in /etc/apt/sources.list.d/debian.list oder /etc/apt/sources.list
(die Raute # zu Beginn der Zeile muss gelöscht werden), womit die betreffende Zeile so aussieht:
deb http://ftp.de.debian.org/debian/ testing main contrib non-freeapt-get update
apt-get install kmahjongg/testing
- Das neu installierte Paket darf nun keinem Upgrade unterzogen werden, man setzt es auf "hold":
echo kmahjongg hold|dpkg --set-selections
Nun wird testing in /etc/apt/sources.list.d/debian.list wieder deaktiviert (Raute # am Beginn der betreffenden Zeile)
apt-get update
Wenn ein neues, fehlerfreies Paket in sid eintrifft, kann man die neueste Version wieder installieren, wenn man den "hold"-Status beendet:
echo kmahjongg install|dpkg --set-selections apt-get update apt-get install kmahjongg
Aktualisierung des installierten Systems - dist-upgrade - Überblick
Eine Aktualisierung des ganzen Systems wird mit diesem Befehl durchgeführt: dist-upgrade. Vor einer solchen Maßnahme sollten die aktuellen Upgradewarnungen auf der Hauptseite von sidux beachtet werden, um zu prüfen, ob Pakete des eigenen Systems betroffen sind. Wenn ein installiertes Paket behalten, also auf hold gesetzt werden sollte, verweisen wir auf den Abschnitt Downgrade bzw. "Hold" eines Pakets.
Ein einfaches 'apt-get upgrade' von Debian Sid ist nicht empfohlen.
Wie regelmäßig soll eine Systemaktualisierung durchgeführt werden?
Eine Systemaktualisierung soll regelmäßig durchgeführt werden, alle ein bis zwei Wochen haben sich als guter Richtwert erwiesen. Auch bei monatlichen Systemaktualisierungen sollte es zu keinen nennenswerten Problemen kommen. Die Erfahrungen zeigen, dass länger als zwei, maximal drei Monate nicht zugewartet werden sollte. Besonders beachtet sollten Programmpakete werden, welche nicht aus den sidux- oder Debian-Repositorien stammen oder selbst kompiliert wurden, da diese nach einer Systemaktualisierung mittels dist-upgrade wegen Inkompatibilitäten ihre Funktionsfähigkeit verlieren können.
Nachdem die interne Datenbank aktualisiert wurde, kann man herausfinden, für welche Pakete eine neuere Version existiert (zuerst muss apt-show-versions installiert werden):
apt-show-versions -u libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3 passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6 teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1 libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3.........
Die Aktualisierung eines einzelnes Pakets (hier z. B. debtags-1.6.6.0) kann unter Berücksichtigung der Abhängigkeiten vorgenommen werden mit:
# apt-get install debtags-1.6.6.0 Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: apt-index-watcher Die folgenden Pakete werden aktualisiert: debtags 1 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert. Es müssen 660kB Archive geholt werden. Nach dem Auspacken werden 1991kB Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? Hole:1 http://ftp.de.debian.org unstable/main debtags 1.6.6 [660kB] Es wurden 660kB in 1s geholt (513kB/s) (Lese Datenbank ... 138695 Dateien und Verzeichnisse sind derzeit installiert.) Entferne apt-index-watcher ... (Lese Datenbank ... 138692 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereiten zum Ersetzen von debtags 1.6.2 (durch .../debtags_1.6.6_i386.deb) ... Entpacke Ersatz für debtags ... Richte debtags ein (1.6.6) ... Installiere neue Version der Konfigurationsdatei /etc/debtags/sources.list ...
(Nur) Downloaden:
Eine wenig bekannte, aber großartige Möglichkeit ist die Option -d:
apt-get update && apt-get dist-upgrade -d
-d ermöglicht, die Pakete eines dist-upgrades lokal zu speichern, ohne dass sie installiert werden. Dies kann in einer Konsole durchgeführt werden, während man in X ist. Der dist-upgrade selbst kann zu einem späteren Zeitpunkt in init 3 erfolgen. Dadurch erhält man auch die Möglichkeit, nach eventuellen Warnungen zu recherchieren und danach zu entscheiden, ob man die Aktualisierung durchführen möchte oder nicht:
apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
elinks-data
The following packages have been kept back:
git-core git-gui git-svn gitk icedove libmpich1.0ldbl
The following packages will be upgraded:
alsa-base bsdutils ceni configure-ndiswrapper debhelper
discover1-data elinks file fuse-utils gnucash.........
35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 23.4MB of archives.
After this operation, 594kB of additional disk space will be used.
Möchten Sie fortfahren [J/n]?J
J lädt die zu aktualisierenden bzw. neu zu installierenden Pakete, ohne das installierte System zu verändern.
Nach dem Download der Pakete mittels 'dist-upgrade -d' können diese jederzeit nach folgendem Muster installiert werden:
dist-upgrade - Die einzelnen Schritte
# Aus der KDE-Desktopumgebung abmelden
# In den Textmodus gehen mit Ctrl+Alt+F1
# Einloggen als root
init 3
apt-get update
apt-get dist-upgrade
apt-get clean
init 5 && exit
Warnhinweis: Eine Systemaktualisierung, die nicht im Runlevel 3 (init 3) durchgeführt wird, kann große, nicht unterstützbare Probleme mit sich bringen!
Gründe, warum man nur apt-get für eine Systemaktualisierung verwenden soll
Paketmanager wie adept, aptitude, synaptic und kpackage können nicht immer die umfassenden Änderungen in Sid (Änderungen von Abhängigkeiten, Benennungskonventionen, Skripten u.a.) korrekt auflösen. Dies sind keine Fehler in diesen Programmen oder Fehler der Entwickler. Dies sind exzellente Programme für eine Installation von Debian stable, aber sie sind nicht angepasst an die besonderen Aufgaben der dynamischen Distribution Debian Sid.
Diese Programme können sich sehr gut dazu eignen, Programme zu suchen, aber zum Installieren, Löschen und zum Durchführen einer Systemaktualisierung soll apt-get verwendet werden.
Paketmanager wie adept, aptitude, synaptic und kpackage sind - technisch gesprochen - nicht-deterministisch. Bei Verwendung einer dynamischen Distribution wie Debian Sid unter Hinzunahme von Drittrepositorien, deren Qualität nicht vom Debian-Team getestet sein kann, kann eine Systemaktualisierung zur Katastrophe führen, da diese Paketmanager durch automatische Lösungsversuche falsche Entscheidungen treffen können. Weiterhin ist zu beachten, dass ALLE GUI-Paketmanager in init 5 und/oder in X ausgeführt werden müssen, und Systemaktualisierungen in init 5 und/oder X (oder selbst ein ohnehin nicht empfohlenes 'apt-get upgrade') werden früher oder später dazu führen, dass man sein System irreversibel beschädigt hat.
Im Gegensatz dazu führt apt-get ausschließlich das durch, was angefragt ist. Bei unvollständigen Abhängigkeiten in Sid, sprich: wenn das System bricht (dies kann in Sid bei Strukturänderungen vorkommen), können die Ursachen genau festgestellt und dadurch repariert oder umgangen werden. Das eigene System "bricht" nicht. Falls also eine Systemaktualisierung dem Gefühl nach das halbe System löschen möchte, überlässt apt-get dem Administrator die Entscheidung, was zu tun ist, und handelt nicht eigenmächtig.
Dies ist der Grund, warum Debian-Builds apt-get nutzen und nicht andere Paketmanager.
Mit apt-cache nach Programmpaketen suchen
Ein sehr nützlicher Befehl im APT-System ist apt-cache, damit werden die APT-Datenbank durchsucht und Informationen über die Pakete ausgegeben; z. B. die Liste aller Pakete, die "sidux" und "manual" enthalten oder ansprechen, erhält man durch folgenden Befehl:
$ apt-cache search sidux manual ....... sidux-manual-common - the official sidux manual - common files sidux-manual-es - the official Spanish sidux manual sidux-manual-de - the official German sidux manual sidux-manual-el - the official Greek sidux manual sidux-manual - the official sidux manual - all languages sidux-manual-pt-br - the official Brazilian Portuguese sidux manual sidux-manual-en - the official English sidux manual sidux-manual-reader - sidux manual reader
Möchte man mehr Informationen über die aktuellen Versionen eines Pakets, dann benutzt man:
$ apt-cache show sidux-manual-de Package: sidux-manual-de Priority: optional Section: doc Installed-Size: 1096 Maintainer: Kel Modderman <kel@otaku42.de> Architecture: all Source: sidux-manual Version: 01.12.2007.06.03-1 Depends: sidux-manual-common Filename: pool/main/s/sidux-manual/sidux-manual-de_01.12.2007.06.03-1_all.deb Size: 388860 MD5sum: e73f66e8dc90c57e764411a099d45ebc SHA1: a0a63fa991cab09e4422f26fdb0c4c5ac7b27bdd SHA256: e177819755f0d04cfe7c455e2bd4257063b7bb5521af6df7d7dd3b30727b2bb2 Description: the official en sidux manual This manual is divided into common sections, for example, .......
Alle installierbaren Versionen des Pakets (abhängig von der sources.list) können folgendermaßen aufgelistet werden:
$ apt-cache policy sidux-manual-de
sidux-manual-de:
Installiert:(keine)
Mögliche Pakete:01.12.2007.06.03-1
Versions-Tabelle:
01.12.2007.06.03-1 0
500 http://sidux.com sid/main Packages
Eine vollständige Beschreibung des APT-Systems findet man in Debians APT-HOWTO
Graphisches Paketsuchprogramm "packagesearch"
apt-get update apt-get install packagesearch
Nach dem ersten Start von packagesearch muss in Packagesearch>Preferences apt-get gewählt werden.
Please do not use Packagesearch to install packages, use it only as a GUI search engine.
Beim ersten Start kann auch ein Infofenster das Fehlen von deborphan bemängeln. Die Informationen von deborphan bitte mit größter Vorsicht verwenden.
Folgende Suchkriterien stehen zur Auswahl:
- pattern (allgemeine Suchanfrage)
- tags (Suche basierend auf debtags, einem neuen System, Debian-Pakete zu kategorisieren)
- files (Dateinamen)
- installed status (Installationsstatus)
- orphaned packages (verwaiste Pakete)
Zusätzlich werden viele Informationen zu den Debian-Paketen angeboten, so auch welche Dateien in einem Paket geschnürt sind. Weitere ausführliche Informationen zur Verwendung von packagesearch findet man unter Help>Contents. Derzeit ist die Benutzerführung von packagesearch ausschließlich Englisch.
Eine vollständige Beschreibung des APT-Systems findet man in Debians APT-HOWTO

Suche online - offline