Version 3.1.3
Copyright © 1998 Jason Gunthorpe
Zusammenfassung
Dieses Dokument stellt eine Übersicht bereit, wie das APT-Paketverwaltungsprogramm benutzt wird.
Inhaltsverzeichnis
Inhaltsverzeichnis
Das Paket APT enthält derzeit zwei Abschnitte, die APT-dselect-Methode und die Benutzerschnittstelle apt-get für die Befehlszeile. Beide stellen eine Möglichkeit bereit, Pakete zu installieren, zu entfernen, sowie neue Pakete aus dem Internet herunterzuladen. |
Das Debian-Paketierungssystem besitzt eine große Anzahl von Informationen, die mit jedem Paket verbunden sind, um zu helfen sicherzustellen, dass es ordentlich und leicht in das System integriert wird. Das bekannteste seiner Funktionen ist das Abhängigkeitssystem. |
Das Abhängigkeitssystem erlaubt individuellen Programmen, Gebrauch von gemeinsam im System benutzten Elementen, wie Bibliotheken, zu machen. Es vereinfacht, selten benutze Teile eines Programms in separaten Paketen zu platzieren, um die Zahl von Dingen zu verringern, die der Durchschnittsanwender installieren sollte. Außerdem erlaubt es die Auswahl von E-Mail-Transport-Programmen, X-Servern und so weiter. |
Der erste Schritt zum Verständnis des Abhängigkeitssystems besteht darin, das Konzept einer einfachen Abhängigkeit zu begreifen. Die Bedeutung einer einfachen Abhängigkeit besteht darin, dass ein Paket ein anderes Paket benötigt, das zu gleichen Zeit installiert sein muss, um ordentlich zu funktionieren. |
Mailcrypt ist zum Beispiel eine Emacs-Erweiterung, die hilft, E-Mails mit GPG zu verschlüsseln. Ohne installiertes GPG ist Mailcrypt unbrauchbar, deshalb hat Mailcrypt eine einfache Abhängigkeit von GPG. Da es außerdem eine Emacs-Erweiterung ist, hat es ebenfalls eine einfache Abhängigkeit von Emacs. Ohne Emacs ist es komplett unbenutzbar. |
Die andere wichtige Abhängigkeit, die es zu verstehen gilt, ist eine in Konflikt stehende Abhängigkeit. Das bedeutet, dass das Paket, wenn es mit einem anderen Paket installiert ist, nicht funktioniert und möglicherweise extrem schädlich für das System sein könnte. Stellen Sie sich als Beispiel einen E-Mail-Transport-Programmen wie Sendmail, Exim oder QMail vor. Es ist nicht möglich, zwei E-Mail-Transport-Programmen installiert zu haben, da beide im Netzwerk auf zu empfangende E-Mails warten. Der Versuch, zwei zu installieren, würde das System ernsthaft beschädigen, weshalb alle E-Mail-Transport-Programmen in Konflikt stehende Abhängigkeiten mit allen anderen E-Mail-Transport-Programmen haben. |
Als zusätzliche Komplikation besteht die Möglichkeit, dass ein Paket vortäuscht, ein anderes Paket zu sein. Bedenken Sie, dass Exim und Sendmail in vieler Hinsicht identisch sind – sie liefern beide E-Mails aus und verstehen eine gemeinsame Schnittstelle. Daher hat das Paketsystem die Möglichkeit, beide als E-Mail-Transport-Programmen zu deklarieren. Deshalb deklarieren Exim und Sendmail, dass sie einen E-Mail-Transport-Programmen bereitstellen und andere Pakete, die einen E-Mail-Transport-Programmen benötigen, dass sie von einem E-Mail-Transport-Programmen abhängen. Die kann zu großer Verwirrung führen, wenn manuell versucht wird, Pakete zu reparieren. |
Zu jedem Zeitpunkt könnte eine einzelne Abhängigkeit von Paketen erfüllt werden, die bereits installiert sind oder auch nicht. APT versucht beim Auflösen von Abhängigkeitsproblemen zu helfen, indem es eine Anzahl automatischer Algorithmen bereitstellt, die bei der Auswahl von Paketen zur Installation helfen. |
apt-get stellt eine einfache Möglichkeit zu Verfügung, Pakete auf der Befehlszeile zu installieren. Anders als dpkg versteht apt-get keine .deb-Dateien. Es arbeitet mit dem Eigennamen des Pakets und kann .deb-Archive nur aus einer Quelle installieren. |
Das Erste [1], das Sie vor der Benutzung
von apt-get tun sollten, ist es, die Paketlisten von der
Quelle herunterzuladen, so dass es weiß, welche Pakete
verfügbar sind. Dies wird mit |
# apt-get update OK http://ftp.de.debian.org/debian/ stable/binary-i386/ Packages OK http://llug.sep.bnl.gov/debian/ testing/contrib Packages Paketlisten werden gelesen … Fertig Abhängigkeitsbaum wird aufgebaut … Fertig |
Einmal aktualisiert stehen mehrere Befehl zur Benutzung zur Verfügung: |
|
apt-get hat mehrere Befehlszeilenoptionen, die sich
detailliert in seiner Handbuchseite,
apt-get(8)
finden. Die nützlichste Option ist |
[1] Falls Sie einen HTTP-Proxy-Server benutzen, müssen Sie zuerst die Umgebungsvariable »http_proxy« setzen, siehe sources.list(5) |
Die APT-dselect-Methode stellt das komplette APT-System mit dem dselect-Paketauswahl-GUI bereit. dselect wird benutzt, um Pakete zum Installieren oder Entfernen auszuwählen und APT installiert sie tatsächlich. |
Um die APT-Methode einzuschalten, müssen Sie [Z]ugriff in dselect auswählen und dann die APT-Methode wählen. Sie werden nach einer Zusammenstellung von Quellen gefragt. Dies sind Orte, von denen Archive heruntergeladen werden. Dies können Internetsites, lokale Debian-Spiegel oder CD-ROMs sein. Jede Quelle kann einen Ausschnitt des gesamten Debian-Archives bereitstellen. APT wird sie automatisch kombinieren, um eine komplette Zusammenstellung von Paketen zu formen. Falls Sie eine CD-ROM haben, ist es eine gute Idee, sie als erstes und dann den Spiegel anzugeben, so dass Sie Zugriff auf die neusten Fehlerbehebungen haben. APT wird automatisch Pakete auf der CD-ROM benutzen, bevor es sie aus dem Internet herunterlädt. |
eine Liste mit Orten von Distributionsquellen einrichten
Bitte geben Sie die Basis-URL der Debian-Distribution an.
Die bekannten Zugriffsschemas dafür sind: http file
Zum Beispiel:
file:/mnt/debian,
https://deb.debian.org/debian,
http://deb.debian.org/debian,
URL [http://llug.sep.bnl.gov/debian]:
|
Das Einrichten der Quellen beginnt durch das Erfragen der Basis des Debian-Archives, vorgegeben ist ein HTTP-Spiegel. Als nächstes wird nach der zu erhaltenden Distribution gefragt. |
Bitte geben Sie die zu erhaltende Distributionskennzeichnung oder den mit einem / endenden Pfad zum Paket an. Die Distributionskennzeichnungen sind normalerweise etwas wie: stable unstable testing Distribution [stable]: |
Die Distribution bezieht sich auf die Debian-Version im Archiv, stable bezieht sich auf die zuletzt veröffentlichte Version und unstable bezieht sich auf die Entwicklungsversion. |
Bitte geben Sie die Bestandteile an, die Sie erhalten möchten Die Bestandteile sind normalerweise etwas wie: »main« »contrib« »non-free« »non-free-firmware« Bestandteile [main contrib non-free non-free-firmware]: |
Die Liste der Bestandteile bezieht sich auf die Liste von Unter-Distributionen zum Herunterladen. Die Distribution ist auf Basis von Software-Lizenzen unterteilt, »Main« besteht aus Paketen, die gemäß der DFSG frei sind, während »Contrib« und »Non-free« Dinge enthalten, die verschiedene Einschränkungen in ihrer Benutzung und ihrem Vertrieb haben. |
Jegliche beliebige Anzahl von Quellen kann hinzugefügt werden, das Einrichtungsskript wird mit Nachfragen fortfahren, bis Sie alles angegeben haben, was Sie möchten. |
Bevor sie beginnen, dselect zu benutzen, ist es
notwendig, die Verfügbarkeitsliste zu aktualisieren, indem sie aus dem Menü
[E]rneuern auswählen. Dies ist eine Obermenge von |
Sie können dann fortfahren und Ihre Auswahl per [A]uswählen treffen und dann die Installation mit [I]nstall. vornehmen. Wenn Sie die APT-Methode benutzen, haben die Befehle Kon[f]ig. und [L]öschen keine Bedeutung, der Befehl [I]nstall. führt beides gleichermaßen aus. |
Standardmäßig wird APT automatisch die Paketdateien (.deb) entfernen, sobald
sie erfolgreich installiert sind. Um dieses Verhalten zu ändern, legen Sie
|
Inhaltsverzeichnis
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. |
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 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 |
Falls jedoch die Option |
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 |
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
|
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 |
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. |
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 |
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. |
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. |
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 |
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 |
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 |
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. |