Kapitel 4. Die Schnittstelle
Zurück |  |

# Kapitel 4. Die Schnittstelle

Sowohl diese APT-Methode dselect als auch apt-get benutzen die gleiche Schnittstelle. Es ist ein einfaches System, das üblicherweise mitteilt, was es tun wird und es dann tut. [2] Nach der Ausgabe einer Zusammenfassung was passieren wird, gibt APT einige informative Statusmeldungen aus, so dass Sie abschätzen können, wie weit es ist und wieviel noch zu tun ist.

## 4.1. Initialisierung

Vor allen Transaktionen, ausgenommen »update«, führt APT eine Reihe von Aktionen durch, um seinen internen Status vorzubereiten. Es führt außerdem einige Prüfungen des Systemstatus durch. Diese Transaktionen können jederzeit durch Ausführung von `apt-get check` durchgeführt werden.

    # apt-get check
    Paketlisten werden gelesen … Fertig
    Abhängigkeitsbaum wird aufgebaut … Fertig

Das erste was es tut, ist das Einlesen aller Paketdateien in den Speicher. APT benutzt ein Zwischenspeicherschema, so dass diese Aktion beim zweiten Ausführen schneller laufen wird. Falls einige der Paketdateien nicht gefunden werden, werden sie ignoriert und beim Beenden von Apt-get wird eine Warnung ausgegeben.

Die letzte Aktion führt eine detaillierte Analyse der Abhängigkeiten des Systems durch. Sie prüft jede Abhängigkeit jedes installierten oder entpackten Pakets und berücksichtigt, ob es in Ordnung ist. Sollte dies ein Problem finden, dann wird ein Bericht ausgegeben und apt-get wird die Ausführung verweigern.

    # apt-get check
    Paketlisten werden gelesen … Fertig
    Abhängigkeitsbaum wird aufgebaut
    Status-Informationen einlesen … Fertig
    Probieren Sie „apt --fix-broken install“, um diese zu korrigieren:
    Die folgenden Pakete haben nichterfüllte Abhängigkeiten:
      9fonts: Hängt ab: xlib6g ist aber nicht installiert
      uucp: Hängt ab: mailx ist aber nicht installiert
      blast: Hängt ab: xlib6g (>= 3.3-5) ist aber nicht installiert
      adduser: Hängt ab: perl-base ist aber nicht installiert
      aumix: Hängt ab: libgpmg1 ist aber nicht installiert
      debiandoc-sgml: Hängt ab: sgml-base ist aber nicht installiert
      bash-builtins: Hängt ab: bash (>= 2.01) but 2.0-3 ist installiert
      cthugha: Hängt ab: svgalibg1 ist aber nicht installiert
               Hängt ab: xlib6g (>= 3.3-5) ist aber nicht installiert
      libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)

In diesem Beispiel hat das System viele Probleme, einschließlich eines ernsten Problems mit libreadlineg2. Für jedes Paket, das nichterfüllte Abhängigkeiten hat, wird eine Zeile ausgegeben, die das Paket mit dem Problem anzeigt und die Abhängigkeiten, die nicht erfüllt sind. Eine kurze Erklärung, warum das Paket ein Abhängigkeitsproblem hat, ist inbegriffen.

Es gibt zwei Möglichkeiten, wie ein System in einen kaputten Status wie diesen kommen kann. Die erste wird dadurch verursacht, dass dpkg einige feine Beziehungen zwischen Paketen übersieht, wenn Upgrades durchgeführt werden. [3]. Die zweite tritt auf, falls eine Paketinstallation während der Ausführung fehlschlägt. In dieser Situation könnte ein Paket entpackt worden sein, ohne dass die von ihm Abhängigen installiert sind.

Die zweite Situation ist weit weniger ernst als die erste, weil APT bestimmte Beschränkungen in der Reihenfolge setzt, in der Pakete installiert werden. In beiden Fällen veranlasst die Option `-f` apt-get, eine mögliche Lösung für das Problem zu folgern und dann fortzufahren. Die APT-Methode dselect liefert immer die Option `-f`, zum einfachen Fortfahren von gescheiterten Betreuerskripten.

Falls jedoch die Option `-f` benutzt wird, um ein ernsthaft kaputtes System zu korrigieren, das vom ersten Fall verursacht wurde, dann ist es möglich, dass es entweder sofort fehlschlägt oder die Installationsabfolge fehlschlagen wird. In beiden Fällen ist es nötig, Dpkg (möglicherweise mit erzwingenden Optionen) manuell zu benutzen, um die Situation ausreichend zu korrigieren, so dass es APT ermöglicht wird, fortzufahren.

## 4.2. Der Statusbericht

Bevor es fortfährt, wird apt-get einen Bericht darüber präsentieren, was geschehen wird. Im Allgemeinen spiegelt der Bericht den Typ der Aktion, die ausgeführt wird, wider, aber es gibt auch mehrere gemeinsame Elemente. Auf jeden Fall spiegelt die Liste den Endstatus der Dinge wider, bezieht die Option `-f` in Betracht und alle andere relevante Aktivitäten zum Befehl, der ausgeführt wird.

### 4.2.1. Die zusätzliche Paketliste

    Die folgenden Pakete werden installiert:
      libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl
      mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base
      bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy
      squake pgp-i python-base debmake ldso perl libreadlineg2
      ssh

Die zusätzliche Paketliste zeigt alle Pakete, die installiert werden oder von denen ein Upgrade durchgeführt wird, zusätzlich zu den auf der Befehlszeile angegebenen. Sie wird nur für einen `install`-Befehl generiert. Die aufgelisteten Pakete sind häufig das Ergebnis einer automatischen Installation.

### 4.2.2. Die zu entfernenden Pakete

    Die folgenden Pakete werden ENTFERNT:
      xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix
      xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel
      xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid
      nas xpilot xfig

Die Liste der zu entfernenden Pakete zeigt all die Pakete, die vom System entfernt werden. Sie kann für jede der Aktionen angezeigt werden und sollte einer sorgfältige Überprüfung unterzogen werden, um sicherzustellen, dass nichts Wichtiges weggenommen wird. Die Option `-f` ist insbesondere gut darin, Pakete zum Entfernen vorzumerken, so dass in diesem Fall mit extremer Vorsicht vorgegangen werden sollte. Die Liste könnte Pakete enthalten, die entfernt werden, weil sie nur teilweise installiert sind, möglicherweise aufgrund einer abgebrochenen Installation.

### 4.2.3. Die Liste neuer Pakete

    Die folgenden NEUEN Pakete werden zusätzlich installiert:
      zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base

Die Liste neuer Pakete ist einfache eine Erinnerung, was geschehen wird. Die aufgelisteten Pakete sind zurzeit nicht auf dem System installiert, werden es aber sein, wenn APT fertig ist.

### 4.2.4. Die Liste zurückgehaltener Pakete

    Die folgenden Pakete werden zurückgehalten:
      compface man-db tetex-base msql libpaper svgalib1
      gs snmp arena lynx xpat2 groff xscreensaver

Jedesmal, wenn ein Upgrade des ganzen Systems durchgeführt wird, besteht die Möglichkeit, dass neue Versionen von Paketen nicht installiert werden können, weil sie neue Dinge benötigen oder einen Konflikt mit bereits installierten Dingen haben. In diesem Fall wird das Paket auf der Liste zurückgehaltener Pakete erscheinen. Der beste Weg dort aufgeführte Pakete zur Installation zu bewegen, ist per `apt-get install` oder indem dselect zum Lösen ihrer Probleme benutzt wird.

### 4.2.5. Warnung wegen zurückgehaltener Pakete

    Die folgenden zurückgehaltenen Pakete werden geändert:
      cvs

Manchmal können Sie APT bitten, ein auf »zurückgehalten« gesetztes Paket zu installieren. In einem solchen Fall gibt es eine Warnung aus, dass das zurückgehaltene Paket geändert wird. Dies sollte nur während Dist-upgrade oder Install vorkommen.

### 4.2.6. Abschließende Zusammenfassung

Abschließend wird APT eine Zusammenfassung aller Änderungen ausgeben, die auftreten werden.

    206 Pakete aktualisiert, 8 zusätzlich installiert, 23 werden entfernt und 51 nicht aktualisiert.
    12 Pakete nicht vollständig installiert oder entfernt.
    Muss 65,7MB/66,7MB an Archiven herunterladen. Nach dem Entpacken werden 26,5MB zusätzlich belegt sein.

Die erste Zeile der Zusammenfassung ist bloß eine Zusammenfassung von all den Listen und umfasst die Anzahl der Upgrades – das sind bereits installierte Pakete, für die neue Versionen verfügbar sind. Die zweite Zeile zeigt die Anzahl von schlecht konfigurierten Paketen, die möglicherweise das Ergebnis einer abgebrochenen Installation sind. Die letzt Zeile zeigt den Speicherbedarf, den die Installation benötigt. Das erste Zahlenpaar bezieht sich auf die Größe der Archivdateien. Die erste Zahl zeigt die Anzahl der Bytes an, die von fernen Orten heruntergeladen werden müssen und die zweite zeigt die gesamte Größe aller benötigten Archive an. Die nächste Zahl zeigt den Größenunterschied zwischen den derzeit installierten Paketen und den neu installierten Paketen. Es entspricht ungefähr dem in /usr benötigten Speicher nachdem alles erledigt ist. Wenn eine große Anzahl Pakete entfernt wird, dann kann der Wert den Betrag des freiwerdenden Speichers anzeigen.

Einige andere Berichte können durch Benutzung der Option »-u« generiert werden, um Pakete anzuzeigen, von denen ein Upgrade durchgeführt werden soll. Dies ist den vorherigen Beispielen ähnlich.

## 4.3. Der Anzeigestatus

Während des Herunterladens von Archiven und Paketdateien gibt APT eine Reihe von Statusmeldungen aus.

    # apt-get update
    Hole:1 http://ftp.de.debian.org/debian/ stable/main Packages
    Hole:2 http://llug.sep.bnl.gov/debian/ testing/contrib Packages
    Treffer http://llug.sep.bnl.gov/debian/ testing/main Packages
    Hole:4 http://ftp.de.debian.org/debian/ unstable/binary-i386/ Packages
    Hole:5 http://llug.sep.bnl.gov/debian/ testing/non-free Packages
    11% [5 testing/non-free 'Warte auf Datei' 0/32.1k 0%] 2203b/s 1m52s

Die Zeilen, die mit Hole beginnen, werden ausgegeben, wenn APT anfängt, eine Datei herunterzuladen, während die letzte Zeile den Fortschritt des Herunterladens anzeigt. Die erste Prozentzahl der Fortschrittszeile zeigt die gesamt erledigte Prozentzahl aller Dateien an. Unglücklicherweise schätzt `apt-get update` die erledigte Prozentzahl, da die Größe der Pakete unbekannt ist, was einige Ungenauigkeiten bewirkt.

Der nächste Abschnitt der Statuszeile wird für jeden Download-Thread einmal wiederholt und zeigt die durchgeführte Aktion, sowie einige nützliche Informationen darüber an was geschieht. Manchmal wird dieser Abschnitt einfach nur Forking darstellen, was bedeutet, dass das Betriebssystem das Download-Modul am Laden ist. Das erste Wort nach dem »[« ist die Ladenummer, wie sie auf den Verlaufszeilen angezeigt wird. Das nächste Wort ist der Name des Objekts in Kurzform, das heruntergeladen wird. Für Archive wird es den Namen des Paketes enthalten, das heruntergeladen wird.

Innerhalb von einzelnen Anführungszeichen folgt eine informative Zeichenkette, die den Fortschritt der Aushandlungsphase des Downloads anzeigt. Normalerweise schreitet sie von Verbinde zu Warte auf Datei zu Lade herunter oder Nehme wieder auf fort. Der letzte Wert ist die Anzahl der von der fernen Site heruntergeladenen Bytes. Sobald der Download beginnt, zeigt sich dies wie `102/10.2k` was anzeigt, dass 102 Bytes heruntergeladen und 10,2 Kilobyte erwartet werden. Die Gesamtgröße wird immer in vierstelliger Schreibweise dargestellt, um Platz zu sparen. Nach der Größenanzeige ist eine Prozentfortschrittsanzeige für die Datei selbst. Das zweitletzte Element ist die augenblickliche Fortschrittsgeschwindigkeit. Dieser Wert wird alle fünf Sekunden aktualisiert und spiegelt die Datenübertragungsrate in dieser Periode wider. Am Ende wird die geschätzte Übertragungszeit angezeigt. Dies wird regelmäßig aktualisiert und spiegelt die Zeit zum Vervollständigen bei der angezeigten Datenübertragungsrate wider.

Die Statusanzeige aktualisiert sich alle halbe Sekunde, um eine gleichmäßige Rückmeldung über den Download-Fortschritt bereitzustellen, während die »Hole«-Zeilen bei jeder gestarteten neuen Datei zurückscrollen. Da die Statusanzeige ständig aktualisiert wird, ist sie für die Protokollierung in eine Datei ungeeignet. Benutzen Sie die Option `-q`, um die Statusanzeige zu entfernen.

## 4.4. Dpkg

APT benutzt dpkg, um die Archive zu installieren und wird zu der dpkg-Schnittstelle herüberschalten, sobald der Download vollständig ist. dpkg wird außerdem eine Reihe von Fragen stellen, während es die Pakete abarbeitet und die Pakete können auch mehrere Fragen stellen. Vor jeder Frage ist üblicherweise eine Beschreibung des Gefragten und die Fragen sind zu vielfältig, um sie vollständig hier zu besprechen.

[2] Die Methode dselect ist tatsächlich eine Zusammenstellung von Wrapper-Skripten für apt-get. Die Methode stellt tatsächlich mehr Funktionalitäten bereit, als in apt-get allein vorhanden sind.

[3] APT berücksichtigt jedoch alle bekannten Abhängigkeiten und versucht, kaputte Pakete zu vermeiden

Zurück |  |
Kapitel 3. DSelect | Zum Anfang |