Zum Inhalt springen

Advanced Packaging Tool: Unterschied zwischen den Versionen

Aus Foxwiki
 
(32 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Advanced Packaging Tool ==
'''Advanced Packaging Tool''' - (APT)
APT ist ein Paketmanagement-System, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist.


Mittels APT ist es sehr einfach, Programmpakete zu suchen, zu installieren oder auch das ganze System auf den neuesten Stand zu bringen.
== Beschreibung ==
APT ist ein Paketmanagement-System, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist


Das Advanced Packaging Tool (APT) ist ein Paketverwaltungssystem, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist und dpkg zur eigentlichen Paketverwaltung benutzt. Ziel ist es, eine einfache Möglichkeit zur Suche, Installation und Aktualisierung von Programmpaketen zur Verfügung zu stellen.
Mittels APT ist es sehr einfach Programmpakete
* zu suchen
* zu installieren
* das ganze System auf den neuesten Stand zu bringen


APT besteht aus einer Programmbibliothek und mehreren diese Bibliothek nutzenden Kommandozeilen-Programmen, von denen <tt>apt-get</tt> und <tt>apt-cache</tt> zentral sind. Seit Debian 3.1 wird die Benutzung von aptitude als konsolenbasierendes Paketverwaltungssystem empfohlen.
Das Advanced Packaging Tool (APT) ist ein Paketverwaltungssystem, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist und dpkg zur eigentlichen Paketverwaltung benutzt


APT steht auch in OpenSolaris zur Verfügung (es wurde in die Distribution Nexenta OS aufgenommen) und wurde auch auf Mac OS X portiert, wo es im Rahmen des Fink-Projektes zur Installation von Debian-Softwarepaketen genutzt wird.
* Ziel ist es, eine einfache Möglichkeit zur Suche, Installation und Aktualisierung von Programmpaketen zur Verfügung zu stellen


Basierend auf der Idee von APT wurde Win-Get erschaffen, welches eine ähnliche Paketverwaltung für MS Windows zur Verfügung stellt.
APT besteht aus einer Programmbibliothek und mehreren diese Bibliothek nutzenden Kommandozeilen-Programmen, von denen <tt>apt-get</tt> und <tt>apt-cache</tt> zentral sind


== Interna ==
APT steht auch in OpenSolaris zur Verfügung (es wurde in die Distribution Nexenta OS aufgenommen) und wurde auch auf Mac OS X portiert, wo es im Rahmen des Fink-Projektes zur Installation von Debian-Softwarepaketen genutzt wird
In der Datei <tt>/etc/apt/sources.list</tt> stehen die sogenannten Repositories, also Quellen für Pakete. Dies können entweder CDs oder DVDs, Verzeichnisse auf der Festplatte oder, öfter, Verzeichnisse auf HTTP- oder FTP-Servern sein. Befindet sich das gesuchte Paket auf einem Server (oder einem lokalen Datenträger), so wird dieses automatisch heruntergeladen und installiert.


Die Pakete liegen im Debian-Paketformat (.deb) vor, in dem auch die jeweiligen Abhängigkeiten der Programmpakete untereinander abgelegt sind. So werden automatisch für ein Programm auch eventuell erforderliche Programmbibliotheken mit heruntergeladen und installiert.
Basierend auf der Idee von APT wurde Win-Get erschaffen, welches eine ähnliche Paketverwaltung für MS Windows zur Verfügung stellt


APT setzt auf dpkg auf. APT beschäftigt sich in erster Linie mit der Beschaffung von Paketen, dem Vergleich von verfügbaren Versionen der Pakete und der Verwaltung von Paket-Archiven.
== Themen ==
 
{| class="wikitable options big"
== Frontends ==
Außer der oben erwähnten Kommandozeilenschnittstelle gibt es weitere Frontends für die Paketverwaltung, die APT verwenden. Aptitude bietet eine zeichenorientierte Benutzerschnittstelle. Synaptic ist ein GUI-Frontend für die Desktop-Umgebung.
 
Unter KDE stehen außerdem die Programme Adept oder KPackageKit zur Verfügung. Letzteres unterstützt neben APT zusätzlich weitere Systeme wie RPM. Mit der auf der Abstraktionsschicht QApt aufbauenden Muon Package Management Suite sind daneben auch weitere GUI-Frontends in der Entwicklung.
 
Smart Package Manager kann ebenfalls auf Repositories zugreifen, die für APT erstellt wurden. Er nutzt dabei aber nicht APT, sondern eigene Routinen.
 
Mit Fink und Cydia stehen Frontends für Mac OS X und dessen Derivate zur Verfügung.
 
== APT-RPM ==
Obwohl ursprünglich für Debian-Programmpakete geschrieben, wurde APT später auch auf RPM-Systeme portiert.
 
Gustavo Niemeyer führte die Portierung für die Linux-Distribution Conectiva durch und pflegte diese geraume Zeit als Maintainer. Inzwischen arbeitet er aber hauptsächlich an seinem neuen Projekt Smart Package Manager, und APT-RPM wird von anderen Entwicklern gepflegt und weiterentwickelt.
 
== Apt-cacher und apt-proxy ==
Wer mehrere Rechner mit einer APT-basierten Paketverwaltung im Netz hat, kann sein Netz und die Server, die die Pakete zur Verfügung stellen, erheblich entlasten, indem er eines dieser Programme einsetzt.
 
Im Gegensatz zu weniger spezifischen Proxyservern wie etwa Squid, die nur die in den Übertragungsprotokollen enthaltenen Informationen verwenden können, kennen und verwerten diese Proxies die Paket-Struktur und sichern die Aktualität ihrer gespeicherten Daten entsprechend. Apt-cacher kann so eingestellt werden, dass er sich in regelmäßigen Abständen automatisch aktualisiert.
 
== apt-get ==
[[apt-get]]
 
== apt-Kommandos ==
[[APT/Kommandos]]
 
== Paketquellen ==
[[APT/Paketquellen]]
 
== Apt-Pinning ==
[[APT/Pinning]]
 
== apt-cache ==
[[Apt-cache]]
 
== apt-file ==
[[apt-file]]
 
== apt-key ==
[[apt-key]]
 
== Tipps ==
[[Advanced Packaging Tool/Tipps]]
 
== dpkg ==
dpkg (Debian Package) dient zum Installieren einzelner '''.deb'''-Pakete. Es stellt die Funktionen zur Verfügung (Backend), die von den Programmen apt-get und aptitude benutzt werden.
 
=== Optionen ===
Für die meisten Operationen sind Rootrechte nötig.
 
==== Normale Optionen ====
dpkg erfordert die Angabe der Option, was die auszuführende Operation angibt, sowie abhängig von der Option die Angabe eines Paketnamens oder des Pfades zu einem '''.deb'''-Paket.
 
{|
|-
|-
| colspan="3" | '''Kommandozeilenoptionen zu dpkg '''
| [[apt-get]] ||  
|-
|-
| | '''Kürzel '''
| [[APT/Kommandos]] ||  
| | '''Lange Option '''
| | '''Beschreibung '''
|-
|-
| | <tt>'''-i</tt> '''
| [[APT/Paketquellen]] ||  
| | <tt>'''--install</tt> '''
| | Installiert das als Argument übergebene '''.deb'''-Paket (Dateiname oder mit Option <tt>-R</tt> Ordnername).
|-
|-
| |
| [[APT/Pinning]] ||  
| | <tt>'''--configure</tt> '''
| | Versucht die Installation von noch nicht fertig konfigurierten Paketen zu beenden. Entweder können die Paketnamen als Argumente übergeben werden oder es wird die Option <tt>-a</tt> bzw. <tt>--pending</tt> angegeben, um alle noch zu konfigurierenden Pakete zu verarbeiten.Soll ein bereits korrekt installiertes Paket erneut konfiguriert werden, muss dpkg-reconfigure genutzt werden.
|-
|-
| | <tt>'''-r</tt> '''
| [[Apt-cache]] ||  
| | <tt>'''--remove</tt> '''
| | Entfernt das als Argument übergebene genannte Paket. Wichtig: Der Name des Pakets, nicht der Dateiname muss angegeben werden. Eventuell vom Programm angelegt Konfigurationsdateien bleiben erhalten.
|-
|-
| | <tt>'''-l</tt> '''
| [[apt-file]] ||  
| | <tt>'''--list</tt> '''
| | Ruft dpkg-query auf und gibt eine Liste mit Status, Version und einer Beschreibung des Pakets aus. Statt des Namens kann auch ein regulärer Ausdruck angegeben werden. Wird kein Argument übergeben, werden alle Paketstatus aufgelistet. Diese Option ist auch für unprivilegierte Nutzer verfügbar.
|-
|-
| | <tt>'''-P</tt> '''
| [[apt-key]] ||  
| | <tt>'''--purge</tt> '''
| | Entfernt das genannte Paket inklusive der Konfigurationsdateien.
|-
|-
| | <tt>'''-R</tt> '''
| [[Advanced Packaging Tool/Tipps|Tipps]] ||  
| | <tt>'''--recursive</tt> '''
| | Statt eines Pfades zu einer '''.deb''' kann mit <tt>-R</tt> auch ein Verzeichnis angegeben werden, die gewählte Operation wird dann auf alle Pakete im Verzeichnis angewandt.
|-
|-
| | <tt>'''-L</tt> '''
| [[dpkg]] || APT setzt auf dpkg auf
| | <tt>'''--listfiles</tt> '''
| | Ruft dpkg-query auf und gibt eine Liste der im Paket enthaltenen Dateien aus.
|-
|-
| | <tt>'''-S</tt> '''
| [[aptitude]] ||  
| | <tt>'''--search</tt> '''
| | Ruft dpkg-query auf, um auszugeben in welchen Paketen sich Dateien befinden, die zum angegeben Suchmuster passen.
|-
|-
|}
| [[Advanced Packaging Tool/Problembehebung|Problembehebung]] ||  
Eine vollständige Liste der Optionen findet sich in der '''dpkg'''(1) Manpage im Abschnitt <tt>ACTIONS</tt> bzw. <tt>AKTIONEN</tt>.
 
==== force Optionen ====
==== Achtung! ====
Diese Optionen können die Paketverwaltung und das System irreparabel beschädigen. Deswegen sollten diese Optionen nur mit äußerster Vorsicht und ausreichendem Verständnis angewandt werden.
 
In Ausnahmefällen kann es nötig sein, die Fehler zu übergehen, die dpkg zum Anhalten zwingen. Force-Optionen lassen sich mit den gewöhnlichen Optionen kombinieren, wo es sinnvoll ist.
 
{|
|-
|-
| colspan="2" | '''Kommandozeilenoptionen mit force '''
| [[debconf]] ||  
|-
|-
| | '''Lange Option '''
| [[apt-proxy]] || Apt-cacher und apt-proxy
| | '''Beschreibung '''
|-
|-
| | <tt>'''--force-help</tt> '''
| [[Advanced Packaging Tool/APT-RPM|APT-RPM]] ||  
| | Gibt eine Liste der force-Optionen mit einer Beschreibung aus.
|-
|-
| | <tt>'''--force-depends</tt> '''
| [[Advanced Packaging Tool/Frontends|Frontends]] ||  
| | Ändert Abhängigkeitsfehler zu Warnungen. Ein Paket kann so trotz fehlender Abhängigkeiten installiert werden. <tt>apt-get -f</tt> wird eventuell zur Korrektur benötigt.
|-
| | <tt>'''--force-architecture</tt> '''
| | Erlaubt die Installation eines Pakets, das nicht zur Architektur passt. Nützlich, um reine 32-Bit-Pakete auf einem 64-Bit-System zu installieren. Allerdings ist meist die Multiarch-Integration des Paketes fehlerhaft und die für das Paket Verantwortlichen sollten darüber informiert werden.
|-
| | <tt>'''--force-remove-reinstreq</tt> '''
| | Erlaubt das Entfernen eines Pakets, dessen Reinstallation nötig ist. Teile des Paketes können nach dem Entfernen auf dem System verbleiben.
|-
|-
| [[/etc/apt/sources.list]] ||
|}
|}
Eine vollständige Liste der force-Optionen findet sich in der '''dpkg'''(1) Manpage im Abschnitt <tt>OPTIONS</tt> bzw. <tt>OPTIONEN</tt>.


=== Hilfsprogramme ===
<noinclude>
==== dpkg-query ====
dpkg-query erlaubt Zugriff auf die Paketverwaltungsdatenbank, also auf Metainformationen (Paketstatus, Kontrollfelder, ...).


Die Abfrage von Informationen über Paketdateien wird stattdessen über dpkg-deb geregelt. Einige Optionen können auch direkt mit dem <tt>dpkg</tt>-Befehl angesteuert werden.
== Anhang ==
=== Siehe auch ===
<div style="column-count:2">
<categorytree hideroot=on mode="pages">APT</categorytree>
</div>
----
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}


dpkg-query OPTION PAKET/SUCHMUSTER
=== Links ===
==== Weblinks ====


{|
[[Kategorie:APT]]
|-
| colspan="3" | '''Kommandozeilenoptionen zu dpkg-query '''
|-
| | '''Kürzel '''
| | '''Lange Option '''
| | '''Beschreibung '''
|-
| | <tt>'''-l</tt> '''
| | <tt>'''--list</tt> '''
| | Gibt eine Liste der zum Suchmuster passenden Pakete und deren Informationen aus.
|-
| | <tt>'''-S</tt> '''
| | <tt>'''--search</tt> '''
| | Gibt aus, in welchen Paketen sich Dateien befinden, die zum angegeben Suchmuster (beispielsweise Pfad) passen.
|-
| | <tt>'''-L</tt> '''
| | <tt>'''--listfiles</tt> '''
| | Gibt die im Paket enthaltenen Dateien aus. Das Paket wird über den Paketnamen als Argument übergeben und muss installiert (oder nicht vollständig entfernt) sein.
|-
|}
Eine vollständige Liste der Optionen findet sich in der '''dpkg-query'''(1) Manpage im Abschnitt <tt>COMMANDS</tt> bzw. <tt>BEFEHLE</tt>.
 
==== Paketstatus ====
Zusätzlich zur Beschreibung des Pakets gibt <tt>--list</tt>/<tt>-l</tt> eine Statusangabe zum jeweiligen Paket aus. Diese besteht aus 3 Stellen: # Gewünschter Paketstatus
 
*
** <tt>u</tt> für unbekannt
** <tt>i</tt> für installieren
** <tt>h</tt> für halten
** <tt>r</tt> für entfernen (Konfigurationsdateien behalten)
** <tt>p</tt> für vollständig (inkl. Konfigurationsdateien) entfernen
 
# Aktueller Paketstatus
 
*
** <tt>n</tt> für nicht installiert
** <tt>c</tt> für Konfigurationsdateien verbleibend
** <tt>H</tt> für nicht vollständig installiert (nicht alle Dateien konnten installiert werden)
** <tt>U</tt> für entpackt (vor dem eigentlichen Installieren)
** <tt>F</tt> für nicht vollständig konfiguriert (Fehler in Konfigurationsskripten)
** <tt>W</tt> für Trigger-Verarbeitung (durch anderes Paket) wird erwartet (Trigger sind beispielsweise das Aktualisieren des Manpageindexes oder das Aktualisieren der durch .desktop Dateien bereitgestellten MIME-Typen, also Vorgänge, die für mehrere Pakete interessant sind. Anstatt diese Vorgänge nach der Installation jedes einzelnen Paketes auszuführen, wird der Vorgang erst am Ende der Installation aller Pakete ausgeführt.)
** <tt>t</tt> für Trigger-Verabeitung steht bevor
** <tt>i</tt> für installiert
 
# Fehler (Leerzeichen für keine Fehler)
 
*
** <tt>R</tt> für Reinstallation erforderlich
 
So bezeichnet <tt>ii</tt> ein vollständig installiertes Paket, <tt>rc</tt> ein entferntes Paket von dem noch Konfigurationsdateien vorliegen und <tt>un</tt> ein nicht (mehr) installiertes Paket.
 
Eine vollständige Liste der Statusangaben findet sich in der '''dpkg-query'''(1) Manpage im Abschnitt <tt>PACKAGE STATES</tt> bzw. <tt>PAKETZUSTÄNDE</tt>.
 
==== dpkg-deb ====
dpkg-deb stellt grundlegende Möglichkeiten zum Packen und Entpacken, sowie die Abfrage von Metainformationen (enthaltene Dateien, Kontrollfelder, ...) von '''.deb'''-Paketen bereit.
 
Einige Optionen können auch direkt mit dem <tt>dpkg</tt>-Befehl angesteuert werden.
 
dpkg-deb OPTION VERZEICHNIS/PAKET
 
{|
|-
| colspan="3" | '''Kommandozeilenoptionen zu dpkg-deb '''
|-
| | '''Kürzel '''
| | '''Lange Option '''
| | '''Beschreibung '''
|-
| | <tt>'''-I</tt> '''
| | <tt>'''--info</tt> '''
| | Zeigt Informationen des als Argument übergenenen '''.deb'''-Paketen an. Als optionales zweites Argument kann der Name einer (vorhandenen) Kontrolldatei übergeben werden, deren Inhalt dann in der Standardausgabe angezeigt wird.
|-
| | <tt>'''-b</tt> '''
| | <tt>'''--build</tt> '''
| | Erstellt ein '''.deb'''-Paket aus einem angegebenen Verzeichnis.
|-
| | <tt>'''-c</tt> '''
| | <tt>'''--contents</tt> '''
| | Zeigt den Inhalt eines '''.deb'''-Pakets an.
|-
| | <tt>'''-x</tt> '''
| | <tt>'''--extract</tt> '''
| | Entpackt das angegebene '''.deb'''-Paket in das angegebene Zielverzeichnis.
|-
|}
Eine vollständige Liste der Optionen findet sich in der '''dpkg-deb'''(1) Manpage im Abschnitt <tt>COMMANDS</tt> bzw. <tt>BEFEHLE</tt>.
 
==== dpkg-divert ====
Mit dpkg-divert können Umleitungen eingerichtet werden, sodass beispielsweise Dateien, die von einem Paket bereitgestellt werden, beim Paketupgrade nicht verändert werden.
 
So kann man nicht nur lokale Änderungen (ohne Verlust) vornehmen, sondern auch Pakete, die Dateien an exakt der selben Stelle installieren, trotzdem parallel installieren (vorausgesetzt die Pakete sind nicht explizit als gegenseitiger Konflikt markiert).
 
dpkg-divert (OPTION) BEFEHL DATEI/MUSTER
 
{|
|-
| colspan="2" | '''Kommandozeilenoptionen zu dpkg-divert '''
|-
| | '''Befehl '''
| | '''Beschreibung '''
|-
| | <tt>'''--add</tt> '''
| | Fügt eine Umleitung für die als Argument übergebene Datei hinzu. Die Angabe von <tt>--add</tt> als Kommando ist optional. Wenn kein Kommando angegeben wurde, wird immer dieses Kommando gewählt.
|-
| | <tt>'''--remove</tt> '''
| | Entfernt die Umleitung für die als Argument übergebene Datei. Wenn bei der Umleitung umbenannt wurde, muss trotzdem die ursprüngliche Name übergeben werden.
|-
| | <tt>'''--list</tt> '''
| | Listet alle aktuell eingerichteten Umleitungen, die auf das als Argument übergebene Suchmuster passen, auf. Ohne Argument werden alle Umleitungen aufgelistet.
|-
| colspan="2" |
|-
| | '''Option '''
| | '''Beschreibung '''
|-
| | <tt>--local</tt>
| | Richtet die Umleitung so ein, dass die Datei durch kein Paketupgrade und durch keine Paketinstallation verändert wird.
|-
| | <tt>--package</tt>
| | Das als Argument übergebene Paket ist als einziges Paket nicht von der Umleitung betroffen.
|-
| | <tt>--rename</tt>
| | Beim Einrichten (bzw. Entfernen) wird die Datei umbenannt. Standardmäßig wird die Endung '''.distrib''' hinzugefügt (bzw. entfernt). Existierende Dateien werden nicht überschrieben, eher bricht die Umbenennung ab.
|-
| | <tt>--test</tt>
| | Es werden keine Änderungen vorgenommen.
|-
|}
Eine vollständige Liste der Befehle und Optionen findet sich in der '''dpkg-divert'''(8) Manpage im Abschnitt <tt>COMMANDS</tt> und <tt>OPTIONS</tt> bzw. <tt>BEFEHLE</tt> und <tt>OPTIONEN</tt>.
 
=== Beispiele ===
==== Installation ====
sudo dpkg -i /PFAD/ZUM/PAKET/PAKET.deb
 
Installiert das <tt>PAKET</tt> im genannten Pfad.
 
==== Entfernen ====
sudo dpkg -r vim
 
Entfernt das Paket '''vim'''.
 
sudo dpkg -r vim*
 
Entfernt alle Pakete, deren Name mit <tt>vim</tt> beginnt.
 
==== Anzeige ====
dpkg -l vim*
 
Gibt die Informationen zum allen Paketen aus, deren Name mit <tt>vim</tt> beginnt. Oft macht es Sinn die Ausgaben beispielsweise mit grep nach den Paketstatus zu filtern.
 
==== Konfiguration beenden ====
sudo dpkg --configure -a
 
Führt alle noch ausstehenden Konfigurationsskripte aus und kann so einen abgebrochenen Installationsvorgang fortsetzen.
 
==== Konfiguration erneut durchführen ====
sudo dpkg-reconfigure locales
 
Führt die debconf Konfigurationsskripte des Pakets '''locales''' erneut aus (und generiert damit die Sprachpakete neu).
 
==== Umleitung einrichten ====
sudo dpkg-divert --local --rename /usr/bin/apt-build
 
Die Datei '''/usr/bin/apt-build''' wird für alle Pakete ohne Ausnahme auf die Datei '''/usr/bin/apt-build.distrib''' umgeleitet. Beim Erstellen der Umleitung wird die Datei direkt umbenannt.
 
==== Umleitung entfernen ====
sudo dpkg-divert --rename --remove /usr/bin/apt-build
 
Die im vorherigen Beispiel angelegte Umleitung wird wieder entfernt. Das <tt>--rename</tt> stellt sicher, dass die Datei wieder zurückumbenannt wird.
 
Vergisst man dies, kann man die Datei einfach manuell beispielsweise mit mv umbenennen.
 
== aptitude ==
aptitude ist eine Erweiterung der Paketverwaltung APT (Advanced Packaging Tool) welche auf allen Debian-basierten Systemen, und damit auch Ubuntu, zum Einsatz kommt. Es handelt sich, wie bei apt-get, um eine reine Konsolenanwendung, bietet aber eine grafische Oberfläche auf ncurses Basis.
 
Im Gegensatz zu apt-get führt aptitude über Änderungen der installierten Pakete "genauer" Buch, so dass nicht mehr benötigte Pakete automatisch erkannt und deinstalliert werden. Die Installationsgeschichte wird in ein Log geschrieben, wodurch später angezeigt werden kann, wann oder warum ein Paket installiert wurde.
 
Bei Ubuntu gehört aptitude bis zur Version 10.10 zur Standardinstallation, wurde aber aus platztechnischen Gründen von der Installations-CD genommen. In der Server-Variante ist aptitude nach wie vor installiert.
 
===== Achtung! =====
aptitude hat bis zur Version 0.6.8.1 Probleme mit der Multiarch-Unterstützung (siehe 831768) (dies betrifft in erster Linie 64-bit-Systeme) und ist bis dahin auf Multiarch-Systemen (ab 11.04, beispielsweise 64-Bit) unter Umständen nicht sinnvoll einsetzbar.
 
Für Ubuntu 12.04 wurde die Unterstützung zurückportiert und ist in den ''precise-updates''-Quellen verfügbar. Diese sollten deswegen unbedingt aktiviert werden. Bei späteren Ubuntu-Versionen ist das Problem wegen einer neueren aptitude-Version nicht mehr relevant.
 
=== Installation ===
aptitude kann über das Paket
 
sudo apt-get install aptitude
 
installiert werden.
 
Des Weiteren kann man noch das (englische) Handbuch zu aptitude installieren. Dies ist über das Paket
 
sudo apt-get install aptitude-doc-en
 
verfügbar.
 
=== Bedienung ===
Wie oben bereits erwähnt, kann man aptitude entweder über die Kommandozeile oder die grafische Oberfläche in der Konsole bedienen. Wie bei der Paketverwaltung üblich, werden Root-Rechte für Schreibvorgänge, wie Paketinstallationen zwingend benötigt. Die allgemeine Syntax lautet:
 
sudo aptitude BEFEHL PAKET
 
Ruft man das Programm ohne Befehl und Paket auf, erscheint automatisch die grafische Version.
 
Die grafische Version startet zwar auch ohne Root-Rechte, allerdings kann man dann nur suchen bzw. die Liste der installierten Pakete anschauen; man kann aber keine Pakete entfernen, installieren und weitere .
 
==== Grafische Oberfläche ====
[[Image:Grafik64.png|top]]
 
Die Pakete werden vorsortiert und hierarchisch in Form einer aufklappbaren Ordnerstruktur dargestellt.
 
In der grafischen Oberfläche werden die Pakete je nach "Zustand" verschiedenfarbig dargestellt:* '''schwarz''' : Paket wird nicht verändert
* '''rot''' : Paket ist kaputt oder kann nicht installiert werden
* '''blau''' : Paket wird aktualisiert
* '''weiß''' : Paketversion bleibt erhalten, kann aber aktualisiert werden
* '''grün''' : Paket wird installiert
* '''magenta''' : Paket wird gelöscht
 
aptitude kann komplett über die Tastatur gesteuert werden. Alle Funktionen sind aber auch über die entsprechenden Pull-Down Menüs erreichbar, zu denen man mittels Strg + T gelangt. Im Folgenden sind einige Tasten erklärt:
 
{|
|-
| colspan="2" | '''Übersicht Tasten '''
|-
| | '''Taste '''
| | '''Funktion'''
|-
| | '''↓ + ↑ '''
| | Auswahlbalken bewegen
|-
| | '''⏎ '''
| | Verzeichnis auf- und zuklappen
|-
| | '''/ '''
| | Suchen
|-
| | '''N '''
| | Weitersuchen
|-
| | '''L '''
| | Suchen, alle Pakete, auf die das Suchkriterium nicht zutrifft werden aber ausgeblendet
|-
| | '''I '''
| | Paketinformationen anzeigen
|-
| | '''D '''
| | Abhängigkeiten anzeigen
|-
| | '''U '''
| | Paketquellen updaten
|-
| | '''⇧ + U '''
| | alle verfügbaren Updates installieren
|-
| | '''+ '''
| | Paket zur Installation vormerken
|-
| | '''- '''
| | Paket zum Löschen vormerken
|-
| | '''<nowiki>= </nowiki>'''
| | Paketversion halten
|-
| | '''G '''
| | Start der Installation/Deinstallation
|-
| | '''? '''
| | Hilfe anzeigen, d.h. alle verfügbaren Tasten und deren Funktion
|-
| | '''⇧ + Q '''
| | aptitude beenden
|-
|}
Die Suche von aptitude kennt auch weiterführende Suchfunktionen wie Verknüpfungen, Suche in der Beschreibung und weitere . Dazu ein paar Beispiele:* <tt>?name(linux)</tt> - sucht nach allen Paketen, die Linux im Namen haben
* <tt>?description(python)</tt> - sucht nach allen Paketen, die Python in der Beschreibung haben
* <tt>?and(?name(linux),?description(python)</tt> - sucht nach allen Paketen, die Linux im Namen und Python in der Beschreibung haben
* <tt>?installed</tt> - sucht nach allen installierten Paketen
* <tt>?installed(?not(?automatic))</tt> - sucht nach allen installierten Paketen ohne ''markauto'' Tag
 
Eine komplette Übersicht bietet das aptitude-Handbuch.
 
==== Konsole ====
Ruft man aptitude mit einer Option bzw. Paketnamen auf, so wird die Aktion ohne Start der grafischen Oberfläche direkt ausgeführt. Die allgemeine Syntax lautet
 
sudo aptitude BEFEHL OPTION PAKETNAME(N)
 
Wichtig ist, dass der Befehl vor dem/den Paketnamen steht. Eine Option ist in vielen Fällen nicht notwendig. Wird mehr als ein Paketname angegeben, wird die entsprechende Aktion auf alle genannten Pakete angewendet.
 
Im Folgenden sind einige gängige Befehle aufgeführt. Teilweise sind diese identisch mit denen von apt-get und haben i.d.R. auch den gleichen Effekt.
 
{|
|-
| colspan="2" | '''Übersicht Befehle Kommandozeile '''
|-
| | '''Befehl '''
| | '''Funktion '''
|-
| | <tt>'''install</tt> '''
| | installiert das Paket, die Abhängigkeiten werden direkt mit aufgelöst
|-
| | <tt>'''remove</tt> '''
| | löscht das Paket, die Konfigurationsdateien bleiben aber erhalten
|-
| | <tt>'''purge</tt> '''
| | löscht das Paket inklusive aller Konfigurationsdateien
|-
| | <tt>'''hold</tt> '''
| | erzwingt, dass das Paket in der aktuell installierten Version gehalten wird, d.h. es werden keine Updates dafür installiert
|-
| | <tt>'''forbid-version</tt> '''
| | verbietet die Installation einer bestimmten Paketversion, diese muss hinter dem Paketnamen mittels <tt><nowiki>=</nowiki></tt> angehängt werden, also beispielsweise <tt>xserver-xorg=1.7.7+2~broken-4</tt>
|-
| | <tt>'''safe-upgrade</tt> '''
| | Es wird ein Update der Pakete durchgeführt, die aktualisiert werden können, ohne dass andere Pakete hinzugefügt oder entfernt werden müssen. Dies ist der "normale" Befehl, um innerhalb eines Releases ein Update durchzuführen.
|-
| | <tt>'''full-upgrade</tt> '''
| | aktualisiert alle Pakete, installiert neue und entfernt ggf. nicht mehr benötigte; dies ist der Befehl für ein Upgrade zwischen zwei Ubuntu-Versionen (entspricht bei <tt>apt-get</tt> dem <tt>dist-upgrade</tt>)
|-
| | <tt>'''show</tt> '''
| | zeigt Informationen zum Paket an
|-
| | <tt>'''why</tt> '''
| | zeigt an, welche Pakete von diesem abhängen
|-
| | <tt>'''why-not</tt> '''
| | zeigt an, warum ein Paket nicht installiert werden kann, also welche Konflikte existieren
|-
| | <tt>'''clean</tt> '''
| | leert den Paketcache, kann u.U. sehr viel Festplattenplatz frei machen
|-
| | <tt>'''autoclean</tt> '''
| | leert den Paketcache für alle Pakete aus den eingetragenen Quellen, kann u.U. sehr viel Festplattenplatz frei machen
|-
| | <tt>'''build-dep</tt> '''
| | installiert die nötigen Quellpakete um das spezifizierte Paket kompilieren zu können (verfügbar seit Ubuntu 8.10)
|-
|}
Eine Option, die hier für <tt>install</tt> erwähnt werden soll, ist <tt>-R</tt>. Dadurch werden nur die direkten Abhängigkeiten mit installiert und nicht auch die Empfehlung, was unter Ubuntu per Voreinstellung passiert, aber Global über den Schlüssel <tt>APT::Install-Recommends</tt> bestimmt werden kann.
 
==== Pakete suchen ====
Pakete können mit dem folgenden Befehl gesucht werden:
 
aptitude search SUCHBEGRIFF1 SUCHBEGRIFF2 ...
 
Wird bei einem Installationsbefehl ein nicht existierender Paketname angegeben, werden Alternativen aufgelistet. Die Eingabe von Paketnamen lässt sich außerdem durch Aktivierung der Shell-Autovervollständigung wesentlich erleichtern.
 
Es kann auch nach bestimmten Eigenschaften gesucht werden. Alle Suchmöglichkeiten werden in '''/usr/share/doc/aptitude/README''' gelistet. So sucht
 
aptitude search ~Ddepends:gtk~dscanner'!~dvirus'
 
zum Beispiel nach Paketen, die von '''gtk''' abhängen und in deren Beschreibung "scanner", aber nicht "virus" vorkommt. Es können also auch Reguläre Ausdrücke zur Suche genutzt werden.
 
==== Defekte Pakete reparieren ====
Wenn ein Paket, das nicht zur separaten Installation gedacht ist, eigentlich weitere Pakete benötigt oder in anderer Weise nicht in die bestehende Installation passt, werden bei der nächsten Verwendung "kaputte Pakete" gemeldet. Diese muss man reparieren lassen. Der Befehl
 
sudo aptitude -f install
 
führt entweder zur Installation weiterer Pakete oder zur Entfernung des installierten Pakets. aptitude macht dabei Vorschläge zur Lösung des Problems, die man akzeptieren oder ablehnen kann.
 
Falls die defekten Pakete bekannt sind, kann auch folgender Befehl das Problem lösen:
 
sudo aptitude -f install PAKETNAME1 PAKETNAME2
 
Wobei PAKETNAME1 bzw. PAKETNAME2 und weitere durch die Namen der bekannten defekten Pakete ersetzt wird.
 
===== Achtung! =====
Auch wenn aptitude eine gewisse Intelligenz besitzt, so ist die erste vorgeschlagene Lösung nicht immer die beste. D.h. man sollte die Vorschläge immer sorgsam lesen und dann entscheiden, ob diese sinnvoll sind oder nicht!
 
==== Paketverwaltung unbrauchbar ====
Sollte die Paketverwaltung nach einem <tt>upgrade</tt> bzw. <tt>dist-upgrade</tt> unbrauchbar werden, so kann einer der folgenden Befehle helfen:
 
Nach einem Update der bestehenden Installation:
 
sudo aptitude safe-upgrade -f
 
Nach einem Versions-Upgrade auf eine neue Ubuntu-Version:
 
sudo aptitude full-upgrade -f
 
Nach beiden Befehlen sollte auf jeden Fall noch
 
sudo dpkg --configure -a
 
aufgerufen werden.
 
==== Konfigurationsdaten nachträglich löschen ====
sudo aptitude purge '~c'
 
löscht die Konfigurationsdaten von bereits deinstallierten Paketen.
 
==== Tags vergeben ====
Tags sind zusätzliche Eigenschaften für lokal installierte Pakete. Zum Kompilieren eines Programms werden beispielsweise viele "-dev"-Pakete benötigt. Viele sind anschließend als manuell installiert markiert, werden aber nach erfolgreicher Kompilierung nicht mehr benötigt, allerdings auch nicht automatisch wieder entfernt. Wenn man den Installationszeitraum noch weiß, kann der Blick ins Log helfen, aber das ist nicht sehr praktisch.
 
Vergibt man aber schon bei der Installation beispielsweise das Tag "<programmname>kompilierung" an die betreffenden Pakete, so sieht man auch im Nachhinein leicht, warum ein bestimmtes Paket installiert wurde, und kann gegebenenfalls alle Pakete mit dem Tag entfernen.
 
Beispiel:
 
sudo aptitude install --add-user-tag freeorionkompilierung graphviz-dev libalut-dev libboost1.35-dev libdevil-dev liblog4cpp5-dev libsdl-mixer1.2-dev libsdl1.2-dev python2.5-dev
sudo aptitude remove '?user-tag(freeorionkompilierung)'
 
=== Paketzustand speichern ===
Will man den Zustand aller installierten Pakete, der Caches, der Paketlisten und APT-, sowie aptitude-Einstellungen zu einem Zeitpunkt speichern oder wiederherstellen, kann man dazu den Mechanismus, der eigentlich für reproduzierbare Bugreports gedacht ist, nutzen:* Backup anlegen:
 
sudo aptitude-create-state-bundle DATEINAME * Backup direkt ins System einspielen:
 
sudo tar xvf DATEINAME -C /
 
=== Überflüssige Pakete ===
aptitude entfernt nicht benötigte Pakete automatisch. Wenn aber nicht nur aptitude zur Paketinstallation verwendet wurde, helfen die Pakete debfoster und deborphan , deren Gebrauch im Debian Anwenderhandbuch beschrieben ist. Das Paket '''deborphan''' enthält eine Benutzerschnittstelle (orphaner), die die Bedienung vereinfacht.
 
=== Automatische Sicherheitsupdates ===
Hier empfiehlt es sich, mit einem Editor folgende neue Textdatei anzulegen:
 
{|
|-
|| <nowiki>#!/bin/sh</nowiki>
date >> /var/log/aptitude-security-updates
aptitude update >> /var/log/aptitude-security-updates
aptitude safe-upgrade -y -t $(lsb_release --short --codename)-security >> /var/log/aptitude-security-updates
|-
|}
und diese unter dem Namen '''aptitude-security-updates''' im Verzeichnis '''/etc/cron.daily''' abzuspeichern. Danach muss man die Ausführrechte mit
 
chmod 775 aptitude-security-updates
 
im Terminal setzen. Zukünftig wird dadurch täglich automatisch auf Sicherheitsupdates überprüft und - falls vorhanden - diese ohne Nachfrage installiert. Protokolliert wird dies in der Datei '''/var/log/aptitude-security-updates'''.
 
Ein ausgeklügelter Mechanismus wird von unattended-upgrades bereitgestellt.
 
== Problembehebung ==
{|
|-
|| Durch fehlerhafte oder unpassende Paketquellen, durch die Installation mangelhaft erstellter Pakete oder durch Abstürze bei aktiver Verwendung kann es zu Problemen mit der Paketverwaltung kommen.
 
Das Schaubild verdeutlicht, dass die Fehler an unterschiedlichen Stellen und in verschiedenen Programmen auftreten können.
||
 
|-
|}
==== Abhängigkeiten ====
===== verhindern die Installation eines Pakets =====
Die folgenden Pakete besitzen unerfüllte Abhängigkeiten:
kdelibs3-devel: Hängt ab von: libxslt-devel aber es wird nicht installiert werden
Hängt ab von: libxml2-devel aber es wird nicht installiert werden
 
Gefährlicher ist es, wenn die Installation zwar möglich ist, aber nur um den Preis der Deinstallation zahlreicher anderer Komponenten, die man möglicherweise benötigt.
 
Wenn gewarnt wird, dass Pakete deinstalliert werden, ohne dass man damit gerechnet hat, sollte man die Aktion im Zweifelsfall abbrechen.
 
Dieses Problem tritt vor allem dann auf, wenn man Paketquellen verwendet, die nicht für Ubuntu geeignet sind.
 
===== Lösung =====
Nur speziell für Ubuntu ausgewiesene Paketquellen verwenden (siehe auch Fremdquellen).
 
==== Konfiguration zurücksetzen ====
Wurde an den systemweiten Konfigurationsdateien Änderungen vorgenommen, die zu Fehlern führen, ist aber eine funktionierende Form nicht mehr rekonstruierbar, so kann mit folgendem Befehl das Paket reinstalliert werden, sodass alle Paketdateien inkl. der Konfigurationsdateien durch den Standard ersetzt werden:
 
sudo apt-get -o dpkg::options::="--force-confnew" -o dpkg::options::="--force-confmiss" --reinstall install PAKET
 
===== Zurücksetzen von proposed-Aktualisierungen =====
Wurden versehentlicherweise Pakete aus den ''proposed''-Quellen installiert, können nach dem unter Apt-Pinning beschriebenen Verfahren die Pakete wieder auf eine stabile Version gedowngradet (herabgesetzt) werden.
 
==== Defekte Pakete ====
Die folgenden Pakete besitzen unerfüllte Abhängigkeiten:
z600cups: Hängt ab von: cups (>= 1:1.1.15-10) aber 1.1.20-103 ist installiert
E: Unerfüllte Abhängigkeiten. Versuche -f zu benutzen.
 
Dieses Problem tritt dann auf, wenn man ein Paket "von Hand" installiert hat, ohne dessen Abhängigkeiten zu erfüllen.
 
===== Lösung =====
Im Terminal ist der vorgeschlagene Konsolenbefehl einzugeben :
 
sudo apt-get -f install
 
==== Installation wurde unterbrochen ====
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.


Wenn während der Installation von Paketen die Stromzufuhr des Rechners unterbrochen wird, kann das auch für die Paketverwaltung Folgen haben.
</noinclude>
 
Fand der Ausfall während des Downloads und somit vor der eigentlichen Installation statt, kann der Installationsvorgang wiederholt werden, sodass dieser automatisch an passender Stelle fortgesetzt wird.
 
Wenn aber bereits Dateien eines Pakets installiert wurden, ohne dass die Installation oder Konfiguration zu Ende geführt wurde, gibt es eine entsprechende Fehlermeldung.
 
===== Lösung =====
Wie in der Meldung angegeben ist im Terminal der entsprechende Befehl auszuführen:
 
sudo dpkg --configure -a
 
==== Fehle bei Installation ====
dpkg: Fehler beim Bearbeiten von gettext (--configure):
Unterprozess post-installation script gab den Fehlerwert 1 zurück
dpkg: Fehler beim Bearbeiten von magicolor2530dl (--remove):
Unterprozess post-removal script gab den Fehlerwert 2 zurück
 
Bei der Abarbeitung von '''postinst'''/'''preinst'''- bzw. '''postrm'''/'''prerm'''-Maintainer Skripten kommt es zu Fehlern.
 
===== Lösung =====
Eine nicht ganz saubere Lösung ist es, diese entsprechenden Skripte umzubenennen. Diese Scripte befinden sich in '''/var/lib/dpkg/info/'''.
 
====== Achtung! ======
Nur die zum entsprechenden Paket gehörigen Skripte umbenennen.
 
Besser (aber schwieriger) ist es, beim entsprechende Skript zu überprüfen, welche Bedingung nicht stimmt und es deswegen zu der Fehlermeldung kommt.
 
==== Probleme mit Paketquellen ====
===== Ungültige Signatur von Paketquellen =====
W: GPG-Fehler: https://de.archive.ubuntu.com maverick Release:
Die folgenden Signaturen waren ungültig: BADSIG 40976EAF237D05B5 Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
W: Fehlschlag beim Holen von https://extras.ubuntu.com/ubuntu/dists/maverick/Release
 
Dieses Problem kann nach einer Systemaktualisierung auftreten.
 
====== Lösung ======
sudo rm /var/lib/apt/lists/* -rf
sudo mkdir /var/lib/apt/lists/partial <nowiki># Für Versionen bis Ubuntu 10.04 Lucid Lynx</nowiki>
sudo apt-get update
 
Den Speicherbereich für Statusinformationen jeder in der sources.list angegebenen Paketquelle zurücksetzen und neu laden.
 
===== Fehler beim Einlesen der Paketliste =====
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/archive.canonical.com_ubuntu_dists_natty_partner_i18n_Translation-de
E: Die Paketliste oder die Statusdatei konnte nicht eingelesen oder geöffnet werden.
Failed to exec method /usr/lib/apt/methods/
E: Method has died unexpectedly!
E: Unterprozess hat Fehlercode zurückgegeben (100)
E: Methode /usr/lib/apt/methods/ ist nicht korrekt gestartet
 
Diese Probleme können nach einer Systemaktualisierung auftreten.
 
====== Lösung ======
Es ist der selbe Lösungsansatz wie bei Ungültige Signatur von Paketquellen anzuwenden.
 
===== Öffentlicher Schlüssel von extras.ubuntu.com fehlt =====
W: GPG-Fehler: https://extras.ubuntu.com oneiric Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 16126D3A3E5C1192
 
Dieses Problem kann nach einer Systemaktualisierung auftreten.
 
====== Lösung ======
Kann der Schlüssel nicht mit apt/apt-key importiert werden, hilft eine Neuinstallation des Pakets '''ubuntu-extras-keyring''':
 
sudo apt-get --reinstall install ubuntu-extras-keyring
 
===== Aktualisieren schlägt mit GPG-Fehler fehl =====
W: GPG error: https://ppa.launchpad.net jaunty Release: The following signatures couldn't be
verified because the public key is not available: NO_PUBKEY 632D16BB0C7135A6
 
Ggf. funktioniert das Aktualisieren eines aufgenommenen PPAs nicht reibungslos, weil der Schlüssel trotz ordnungsgemäßen Vorgehens nicht installiert wurde (insbesondere unter Ubuntu 11.10 vermehrt beobachtet).
 
====== Lösung ======
Diese Meldung besagt, dass der Authentifizierungsschlüssel nicht importiert wurde. Gelöst werden kann das Problem in diesem Beispiel mit dem Befehl
 
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 632D16BB0C715DA6
 
Die Schlüsselnummer muss natürlich entsprechend der Fehlermeldung angepasst werden, siehe ggf. auch auf launchpad.net .
 
==== Fehler beim Reaktivieren ====
===== gelöschter PPAs =====
Falls beim Wiederaktivieren eines zuvor deaktivierten oder gelöschten PPAs Probleme beim Importieren des Signierungsschlüssels auftreten, muss dieser zuerst komplett aus den APT-Schlüsseldatenbanken entfernt werden.
 
Um den Name (ID) des richtigen Schlüssels zu erfahren, kann man direkt in der Datenbank nachschauen:
 
sudo apt-key list --keyring /etc/apt/trusted.gpg
sudo apt-key list --keyring /etc/apt/trusted.gpg~
 
Ein Ausschnitt könnte folgendermaßen aussehen:
 
[...]
 
pub 1024R/'''12DE56F8''' 2011-01-01
uid Launchpad PPA for Ubuntu User
 
pub 1024R/5753AA42 2010-11-23
uid Launchpad PPA for Edubuntu Developers
 
[...]
 
Soll nun der Schlüssel des PPAs von "Ubuntu User" entfernt werden, werden die folgenden zwei Befehle ausgeführt:
 
sudo apt-key --keyring /etc/apt/trusted.gpg del 12DE56F8
sudo apt-key --keyring /etc/apt/trusted.gpg~ del 12DE56F8
 
Abschließend muss noch der Speicherbereich für Statusinformationen nach Paketverwaltung/Problembehebung zurückgesetzt werden.
 
====== Hinweis ======
Das Entferen eines PPAs mit ppa-purge reicht nicht aus, da die Schlüssel nicht entfernt werden, sondern lediglich die Quelle deaktiviert wird (und das Paket auf die nächstniedrigere Version zurückgesetzt wird).
 
==== Fehler mit Berechtigungen ====
dpkg: Fehler beim Bearbeiten von /var/cache/apt/archives/linux-image-3.0.0-12-generic_3.0.0-12.20_i386.deb (--unpack):
Fehler beim Setzen des Eigentümers von ''./boot/vmlinuz-3.0.0-12-generic'': Die Operation ist nicht erlaubt
dpkg-deb: Fehler: Unterprozess einfügen wurde durch Signal (Datenübergabe unterbrochen (broken pipe)) getötet
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.0.0-12-generic /boot/vmlinuz-3.0.0-12-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.0.0-12-generic /boot/vmlinuz-3.0.0-12-generic
Fehler traten auf beim Bearbeiten von:
/var/cache/apt/archives/linux-image-3.0.0-12-generic_3.0.0-12.20_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
 
Dieser Fehler tritt auf, wenn Systemverzeichnisse sich nicht auf einem Linux-Dateisystem befinden.
 
===== Lösung =====
Systemordner über fstab in Dateisystem mit ausreichender Rechteverwaltung einbinden. U.U. muss eine entsprechende Partition erst angelegt werden: Manuelle Partitionierung
 
==== Probleme mit Lockdateien ====
===== 2: Datei oder Verzeichnis nicht gefunden =====
E: Lockdatei /var/lib/apt/lists/lock konnte nicht geöffnet werden - open (2: Datei oder Verzeichnis nicht gefunden)
E: Das Listenverzeichnis kann nicht gesperrt werden
E: Lockdatei /var/cache/apt/archives/lock konnte nicht geöffnet werden - open (2: No such file or directory)
E: Das Downloadverzeichnis konnte nicht gesperrt werden.
 
====== Lösung ======
Die Lockdatei und das zugrunde liegende Verzeichnis manuell anlegen. Für das erste Beispiel also:
 
sudo mkdir -p /var/cache/apt/archives
sudo touch /var/cache/apt/archives/lock
 
===== 11: Ressource ist zur Zeit nicht verfügbar =====
E: Konnte Sperre /var/cache/apt/archives/lock nicht bekommen - open (11: Die Ressource ist zur Zeit nicht verfügbar)
E: Das Verzeichnis /var/cache/apt/archives/ kann nicht gesperrt werden
 
oder
 
E: Konnte Sperre /var/lib/dpkg/lock nicht bekommen - open (11: Die Ressource ist zur Zeit nicht verfügbar)
E: Das Verzeichnis /var/lib/dpkg/ kann nicht gesperrt werden
 
====== Lösung ======
Arbeitet bereits ein anderes Programm zur Paketverwaltung im Hintergrund? Dies kontrolliert man zuerst mit
 
sudo lsof /var/cache/apt/archives/lock
 
um dann gegebenenfalls mit ps herauszufinden, welcher Prozess die Paketverwaltung blockiert. Warten auf das Terminieren des Prozesses löst das Problem meist.
 
Sollte der Prozess hängen, kann er mit kill zum Beenden gezwungen werden. Sollte der Lock danach immer noch nicht freigegeben sein, kann man als letzte Möglichkeit den Lock mit Rootrechten löschen.
 
Nach dem Löschen muss die Lockdatei erneut angelegt werden, zum Beispiel mit
 
sudo touch /var/cache/apt/archives/lock
 
===== 13: Keine Berechtigung =====
E: Lockdatei /var/lib/apt/lists/lock konnte nicht geöffnet werden - open (13: Keine Berechtigung)
 
====== Lösung ======
Man sollte das eingegebene Kommando nochmal mit Rootrechten ausführen.
 
==== Archivverzeichnis fehlt ====
E: Archivverzeichnis /var/cache/apt/archives/partial fehlt.
 
===== Lösung =====
Bis Ubuntu 10.04 wird ein fehlendes Verzeichnis für Statusinformationen während der Aktualisierung der Paketindexdateien nicht automatisch angelegt. Durch Neuanlegen des Verzeichnisses wird das Problem behoben:
 
sudo mkdir -p /var/lib/apt/lists/partial
 
==== Fehler in /var/lib/dpkg/available ====
Vorkonfiguration der Pakete ...
dpkg: Fehler: Parsen der Datei ''/var/lib/dpkg/available'', nahe Zeile 0:
nach Feldname ''../../../../share/pyshared/UpdateManager/check-meta-release.py'' muss ein Doppelpunkt folgen
E: Sub-process /usr/bin/dpkg returned an error code (2)
 
Durch Verletzen der Policy von Versionsbezeichnung von Maintainern, kann es zu Meldungen bezüglich fehlender oder nicht erlaubter Zeichen kommen.
 
===== Lösung =====
Durch Entfernen der Datei '''/var/lib/dpkg/available''' wird das Problem behoben:
 
sudo dpkg --clear-avail
 
Soll die Datei aus den verfügbaren Paketversionen aus den Paketquellen neu generiert werden, wird folgender Befehl verwendet:
 
sudo dselect update
 
==== Fehlerhafte Paketquellen ====
===== Zu Hostnamen gehört keine Adresse =====
W: Fehlschlag beim Holen von https://archieve.ubuntu.com/dists/oneiric-security/restricted/i18n/Translation-de Beim Auflösen von ''archieve.ubuntu.com:http'' ist etwas Schlimmes passiert (-5 - Zu diesem Hostnamen gehört keine Adresse)
 
Bei fehlerhaft eingetragenen oder nicht mehr vorhandenen Paketquellen bzw. fehlerhaften Netzwerkeinstellungen kann es zu dieser Fehlermeldung kommen.
 
===== Lösung =====
Manuell die Paketquellen in der Datei /etc/apt/sources.list korrigieren. Dabei auf Rechtschreibfehler und nicht mehr vorhandene Paketquellen achten. Sollten diese Angaben korrekt sein, muss der Netzwerkzugang auf statische bzw. dynamische IP-Zuweisung untersucht werden.
 
====== Hinweis ======
Bei neueren Ubuntu-Versionen sollten auch Einträge im Ordner '''/etc/apt/sources.list.d/''' überprüft werden.
 
==== Paketverwaltung unbrauchbar ====
====== Segfault ======
Es kann vorkommen, dass die Paketverwaltung aufgrund einer Beschädigung des Zwischenspeichers zum Speichern von "verfügbaren" Informationen nicht mehr funktioniert und beispielsweise ein
 
sudo apt-get check
 
mit folgender Fehlermeldung abbricht:
 
Segmentation faulty Tree
 
===== Lösung =====
Dieser Missstand kann durch das Löschen der beiden Zwischenspeicherdateien '''/var/cache/apt/pkgcache.bin''' und '''/var/cache/apt/srcpkgcache.bin''' mit Root-Rechten behoben werden.
 
==== Dateilisten-Datei ====
====== beschädigt ======
Extrahiere Vorlagen aus Paketen: 100%
Vorkonfiguration der Pakete ...
(Lese Datenbank ... 55%dpkg: nicht behebbarer fataler Fehler, Abbruch:
Abschließender Zeilenvorschub fehlt in Dateilisten-Datei des Paketes ''pulseaudio-module-bluetooth''
E: Sub-process /usr/bin/dpkg returned an error code (2)
 
Nach einem Festplatten- oder Speicherfehler, bzw. wenn der Paket-Entpackprozess unterbrochen wurde, kann die entsprechende Datei unter '''/var/lib/dpkg/info/PAKET.list''' beschädigt sein.
 
===== Lösung =====
Mit folgendem Vorgehen wird die entsprechend beschädigte Datei unter '''/var/lib/dpkg/info/PAKET.list''' neu generiert.
 
Dazu wird zuerst das entsprechende Paket heruntergeladen (sollte sich das Paket noch im Cache unter '''/var/cache/apt/archives/''' befinden, kann dieser Schritt übersprungen werden):
 
sudo apt-get --download-only --reinstall install PAKET
 
Abschließend wird die Dateilisten-Datei generiert und am entsprechenden Ort mit dem an 4 Stellen anzupassenden Befehl gespeichert (anzupassen sind zweimal <tt>PAKET</tt> und einmal jeweils <tt>VERSION</tt> und <tt>ARCHITEKTUR</tt>):
 
dpkg -c /var/cache/apt/archives/PAKET_VERSION_ARCHITEKTUR.deb | awk '{if ($6 == "./") { print "/."; } else if (substr($6, length($6), 1) == "/") {print substr($6, 2, length($6) - 2); } else { print substr($6, 2, length($6) - 1);}}' | sudo tee /var/lib/dpkg/info/PAKET.list
 
===== Achtung! =====
Die Umleitung in die Datei '''/var/lib/dpkg/info/PAKET.list''' muss korrekt angepasst werden, da bei falscher Bezeichnung die Paketverwaltung weiter beschädigt werden könnte, indem andere Dateilistendateien überschrieben werden.
 
==== Alle Pakete neu installieren ====
Sind sehr viele Pakete in schlechtem Zustand, lohnt es sich eventuell, alle installierten Programme neu aus den Quellen herunterzuladen und zu installieren:
 
dpkg --get-selections | grep "\binstall" | awk '{print $1}' > /tmp/dpkg.log
 
sucht alle installierten Pakete und speichert diese in der Datei '''/tmp/dpkg.log'''.
 
sudo xargs -n1 apt-get --reinstall install -y < /tmp/dpkg.log
 
nimmt einen Eintrag aus '''/tmp/dpkg.log''' und installiert diese Pakete erneut.
 
==== Probelme mit status-Datei ====
In der Datei '''/var/lib/dpkg/status''' werden alle wichtigen Informationen für dpkg gespeichert. Ist diese Datei beschädigt, ist die Paketverwaltung unbrauchbar.
 
Helfen auch die Backupdateien im gleichen Verzeichnis '''/var/lib/dpkg/''' nicht weiter, kann die Datei mithilfe Informationen aus '''/var/lib/dpkg/available''' und Infodateien aus '''/var/lib/dpkg/info/''' rekonstruiert werden.
 
Die Qualität der Rekonstruktion hängt entscheidend von der Aktualität von '''/var/lib/dpkg/available''' ab. Diese Datei sollte zuerst (mit apt-get) erneuert werden.
 
Anschließend kann folgendes Perl-Skript beispielsweise als '''dpkg-rebuild''' gespeichert werden:
 
{|
|-
|| <nowiki>#!/usr/bin/perl -w</nowiki>
 
<nowiki># Rebuild the Debian '/var/lib/dpkg/status' file from information in</nowiki>
<nowiki># '/var/lib/dpkg/available' and '/var/lib/dpkg/info/*.(list|conffiles)'.</nowiki>
<nowiki># This is useful if your 'status' file got corrupted if the system crashed</nowiki>
<nowiki># during package maintenance, for example.</nowiki>
<nowiki>#</nowiki>
<nowiki># Copyright 2002 by Patrick Reynolds (reynolds .at. cs duke edu)</nowiki>
<nowiki># </nowiki> 2012 by Dominique Lasserre (lasserre.d at gmail com)
<nowiki># Distributed under the terms of the GNU General Public License (GPL).</nowiki>
<nowiki>#</nowiki>
<nowiki># Usage:</nowiki>
<nowiki># </nowiki> dpkg-rebuild
<nowiki># It takes no arguments and generates output in /tmp/status.</nowiki>
<nowiki># Move /tmp/status to /var/lib/dpkg if it looks acceptable.</nowiki>
<nowiki># With multiarch support!</nowiki>
<nowiki>#</nowiki>
<nowiki># Limitations:</nowiki>
<nowiki># </nowiki> 1) Packages that are no longer available will not show up in the
<nowiki># </nowiki> rebuilt 'status' file. This means installed-but-obsolete packages
<nowiki># </nowiki> can't be managed after a rebuild.
<nowiki># </nowiki> Only packages listed in /var/lib/dpkg/available are processed. So update
<nowiki># </nowiki> it before dpkg-rebuild operation.
<nowiki>#</nowiki>
<nowiki># </nowiki> 2) The 'Conffiles:' keys in the 'status' file doesn't have checksums.
<nowiki># </nowiki> It is not possible to detect if config file was modified or not, so do
<nowiki># </nowiki> not generate checksums at all.
<nowiki># </nowiki> If a package has config files but not listed in .conffiles they aren't
<nowiki># </nowiki> tracked (and probably package state is guessed false).
<nowiki># </nowiki> 'Config-Version' will not created because it is impossible to detect from
<nowiki># </nowiki> which version config files are from.
<nowiki># </nowiki> Configuration files may not be completely removed when you purge
<nowiki># </nowiki> packages, and package upgrades may clobber existing configuration
<nowiki># </nowiki> files without asking.
<nowiki>#</nowiki>
<nowiki># </nowiki> 3) Packages in transitional or error states will be misreported.
 
use strict;
use warnings;
 
my $available = "/var/lib/dpkg/available";
my $status = "/tmp/status";
my $info_dir = "/var/lib/dpkg/info";
my %installed;
 
<nowiki># Multiarch supported architectures.</nowiki>
my @archs;
open(ARCHS, "dpkg --print-architecture |") || die "no native architecture\n";
while (<ARCHS>) {
chomp;
push(@archs, $_);
}
close(ARCHS);
open(ARCHS, "dpkg --print-foreign-architectures |");
while (<ARCHS>) {
chomp;
push(@archs, $_);
}
close(ARCHS);
 
<nowiki># Fill %installed with status information of installed packages.</nowiki>
<nowiki># installed{package} => {</nowiki>
<nowiki># </nowiki> "status" => 1, (installed with files -> installed)
<nowiki># </nowiki> "status" => 2, (installed without files -> deinstalled)
<nowiki># </nowiki> <nowiki>## not implemented:</nowiki>
<nowiki># </nowiki> <nowiki>## </nowiki> "status" => 3, (installed with files but no md5sums file -> purged)
<nowiki># </nowiki> "conffiles" => array of conffiles
<nowiki># }</nowiki>
foreach (<$info_dir/*.list>) {
my $package = $_ if (s#.*/([^/]+)\.list$#$1#);
my $pkgfile_st = "$info_dir/$package";
$installed{$package}{"status"} = 2;
open(LISTFILE, "<$pkgfile_st.list") || die "no $pkgfile_st.list\n";
while (<LISTFILE>) {
chomp;
$installed{$package}{"status"} = 1;
last;
}
if (-e "$pkgfile_st.conffiles") {
open(CONFFILE, "<$pkgfile_st.conffiles") || die "no $pkgfile_st.conffiles\n";
my @files;
while (<CONFFILE>) {
chomp;
push(@files, $_);
}
$installed{$package}{conffiles} = \@files if @files;
}
}
 
<nowiki># 0=between, 1=essential-searching 2=copying-installed, 3=copying-not-installed</nowiki>
my $state = 0;
my $package;
my @conffiles = undef;
open(AVAILABLE, "<$available") || die "no $available\n";
open(STATUS, ">$status") || die "no $status\n";
while (<AVAILABLE>) {
chomp;
my $line = $_;
if ($state == 0) {
if (/^Package: (\S+)$/) {
$package = $1;
unless ($installed{$1}) {
foreach (@archs) {
$package = "$1:$_" if ($installed{"$1:$_"});
}
}
if ($installed{$package}) {
print STATUS "$line\n";
$state = 1;
}
else {
$state = 3;
}
}
else {
die "Expected 'Package:' at $.\n";
}
}
elsif ($state == 1) {
my $ess_pkg = 1 if ($line =~ m/^Essential: /);
print STATUS "$_\n" if $ess;
$state = 2;
if ($installed{$package}{"status"} == 1) {
print STATUS "Status: install ok installed\n";
}
elsif ($installed{$package}{"status"} == 2) {
print STATUS "Status: deinstall ok config-files\n";
}
elsif ($installed{$package}{"status"} == 3) {
print STATUS "Status: purge ok config-files\n";
}
if ($installed{$package}{"conffiles"}) {
@conffiles = @{$installed{$package}{"conffiles"}};
}
else {
@conffiles = undef;
}
delete $installed{$package};
print STATUS "$_\n" unless $ess_pkg;
}
elsif ($state == 2) {
if ($line eq "") {
print STATUS "\n";
$state = 0;
}
elsif (/^Description: / && $conffiles[0]) {
print STATUS "Conffiles:\n";
print STATUS " $_\n" foreach (@conffiles);
print STATUS "$line\n";
}
elsif (!/^Filename: / && !/^Size: / && !/^MD5sum: /) {
print STATUS "$line\n";
}
}
elsif ($state == 3){
$state = 0 if ($line eq "");
}
}
 
printf "Installed packages not found in $available:\n";
foreach (sort keys %installed) {
print " $_\n";
}
|-
|}
Nun wird das Skript ausgeführt:
 
perl dpkg-rebuild
 
Anschließend wurde bei Erfolg in '''/tmp/status''' eine Rekonstruktion erstellt. Diese sollte mit den Backupdateien abgeglichen werden und kann anschließend verwendet werden. Je nach Aktualität der '''available'''-Datei wurde eine mehr oder weniger gute Rekonstruktion erstellt. Diese kann allerdings niemals ein externes Backup ersetzen.
 
== debconf ==
Manche Pakete sind mit dem debconf-Konfigurationssystem ausgestattet. Dadurch wird eine Intervention des Benutzers möglich, sodass diesem bestimmte Elemente wie beispielsweise Fragen oder Hinweise aus s.g. "Vorlagen" (eng. "templates") präsentiert werden, worauf der Benutzer bestimmte Entscheidungsmöglichkeiten hat.
 
Dadurch kann beispielsweise direkt die standardmäßige Sprache festgelegt werden, ohne dass der Benutzer diese Änderung selbst in den Konfigurationsdateien vornehmen muss.
 
Dieses Konfigurationssystem ist nicht auf einzelne Pakete beschränkt, sondern es können auch paketüberfreifende Konfigurationseinstellungen (anhand s.g. "shared templates") vorgenommen werden. Somit kann beispielsweise der aktuelle Displaymanager von einem anderen Loginmanager als Standard abgelöst werden.
 
Debconf wird dabei über die Maintainerskripte '''preinst''' (vor der eigentlichen Installation) und '''postinst''' (nach der Installation) bzw. '''postrm''' (zum abschließenden Entfernen der Datenbankeinträge nach Deinstallation des Paketes) aufgerufen.
 
Anhand der durch den Benutzer oder durch die Standardwerte gegebenen Rückgabewerte werden mit diesen Skripten bestimmte Einstellungen am System vorgenommen.
 
Nachdem ein Benutzer die erste Programminstallation eines mit debconf ausgestatteten Paketes durchgeführt und somit eine gewisse Konfiguration vorgenommen hat, kann das Paket mit dem Befehl <tt>dpkg-reconfigure</tt> "neu konfiguriert" bzw. "rekonfiguriert" werden.
 
Das heißt, dass nun eine Benutzerinteraktion wie bei der Erstinstallation stattfindet.
 
Vorlagen und die Ergebnisse der Elemente werden in die debconf-Datenbanken unter '''/var/cache/debconf''' gespeichert.
 
Ergebnisse und der Status (gesehen oder nicht) von Vorlagen, werden in die Datenbank '''config.dat''' geschrieben, die Vorlagen selbst sind unter '''templates.dat''' zu finden.
 
In Ausnahmefällen wird ein Passwort abgefragt, welches dann nur unter Schutz der Rootrechte in '''passwords.dat''' gesichert wird.
 
=== Konfigurierbaren Pakete anzeigen ===
Eine Liste der unter debconf registrierten "Besitzer von Konfigurationsdateien" (welche idR. den Paketnamen entsprechen) erhält man im Terminal mit:
 
debconf-show --listowners
 
Soll zusätzlich noch die Passwortdatenbank nach entsprechenden Besitzern durchsucht werden, sind Rootrechte vonnöten .
 
=== Konfiguration abfragen ===
Die Einträge in der debconf-Datenbank lassen sich mit folgendem Befehl abfragen:
 
debconf-show PAKET
 
Soll zusätzlich noch die Passwortdatenbank nach entsprechenden Einstellungen durchsucht werden, sind Rootrechte vonnöten .
 
=== Paket neu konfigurieren ===
Die Elemente wie Fragen oder Hinweise werden nach ihrer Priorität gefiltert. Die automatische Filterung hängt in erster Linie von der in der Vorlage festgelegten Priorität ab.
 
Aber auch die von der Paketverwaltung abhängige Schnittstellenoberfläche oder der Status "bereits gesehen" (s.g. "seen") spielen eine Rolle.
 
Mit der Option ''--priority'' können mit <tt>dpkg-reconfigure</tt> die Vorlagen bereits installierte Pakete mit festgelegter Filterung dargestellt werden:
 
{|
|-
| colspan="2" | '''Anzeigefilter manuell vorgeben '''
|-
| | '''Option + Parameter '''
| | '''Beschreibung '''
|-
| | '''''--priority=low'' '''
| | Alle Elemente wie Fragen oder Hinweise werden dem Benutzer vorgelegt.
|-
| | '''''--priority=medium'' '''
| | Normale Elemente, die allgemein vernünftige Vorgaben haben, werden gezeigt.
|-
| | '''''--priority=high'' '''
| | Elemente, die keine allgemein vernünftigen Vorgaben haben, werden gezeigt.
|-
| | '''''--priority=critical'' '''
| | Fast alles wird auf die Vorgabewerte gesetzt, nur Elemente (idR. Fragen), die ohne Intervention des Benutzers die Systemintegrität stören könnten, werden gezeigt.
|-
|}
Der folgende Befehl konfiguriert zum Beispiel das Paket '''ssh''' neu, wobei alle durch das Paket bereitgestellte Vorlagen durchgearbeitet werden:
 
sudo dpkg-reconfigure --priority=low ssh
 
Analog gibt es den Befehl <tt>dpkg-preconfigure</tt>, mit welchem die debconf-Vorlagen, welche ''vor'' einer Paketinstallation durchzuführen waren, abgearbeitet werden.
 
===== Hinweis =====
Standardmäßig wird bei dpkg-reconfigure und dpkg-preconfigure (unabhängig von der systemweiten debconf-Priorität) die Priorität "low" verwendet.
 
=== Schnittstellenoberflächen ===
debconf kann auf mehrere Wege mit dem Benutzer kommunizieren. Es werden folgende Schnittstellenoberflächen (s.g. "frontends") unterstützt, wobei diese unterschiedlich funktional sind.
 
{|
|-
| colspan="3" | '''Schnittstellenoberflächen '''
|-
| | '''Typ '''
| | '''Beschreibung '''
| | '''Funktionalität '''
|-
| | Dialog
| | konsolenbasierte Vollbilddarstellung mit dialog
| | vollständige Interaktion möglich
|-
| | Readline
| | traditionelle, einfache Textschnittstelle
| | um Momentanwert zu sehen, muss '''libterm-readline-gnu-perl''' installiert sein
|-
| | Gnome
| | in Gnomeumgebung eingepasste X-Schnittstelle, ist nicht an GNOME gebunden
| | vollständige Interaktion möglich
|-
| | Kde
| | in KDE-Umgebung eingepasste X-Schnittstelle, ist nicht an KDE gebunden
| | vollständige Interaktion möglich
|-
| | Editor
| | Bearbeitung der Konfiguration über standardmäßigen (mit $EDITOR festgelegten) Texteditor
| | vollständige Interaktion möglich
|-
| | Web
| | Konfiguration über Browser, standardmäßig: https://localhost:8001/
| | vollständige Interaktion möglich
|-
| | Nicht-interaktiv
| | Es findet keine Interaktion statt (nicht empfohlen!).
| | keine Interaktion möglich
|-
|}
Je nach benutztem Paketverwaltungsprogramm wird automatisch eine Schnittstellenoberfläche davon ausgewählt. Man kann den Standard aber durch Rekonfigurieren des Paketes '''debconf''' festsetzen.
 
=== Gezielte Konfiguration ===
Die Datenbank kann nach folgendem Muster (am Beispiel einer einfachen Auswahl) direkt geändert werden. ''"BESITZER"'' ist dabei meist der entsprechende Paketname.
 
echo "set BESITZER/VORLAGE WERT" | sudo debconf-communicate
 
===== Hinweis =====
Es wird ausschließlich der Datenbankeintrag geändert. Eine Änderung an Konfigurationsdateien wird nicht vorgenommen (dies ist den Maintainerskripten '''preinst''', '''postinst''', ... vorbehalten).
 
Deswegen ist ein solches Eingreifen nur in Ausnahmefällen sinnvoll.
 
Durch manuelles Ausführen der entsprechenden Maintainerskripte unter '''/var/cache/dpkg/info''' kann aber <tt>dpkg-preconfigure</tt> und analog <tt>dpkg-reconfigure</tt> "nachgestellt" werden.
 
Wie dieser Befehl sinnvoll einsetzbar ist, zeigt folgendes sehr spezielles Beispiel an dem Paket '''ttf-mscorefonts-installer''':
 
Nach einem "Abwürgen" der Schnittstellenoberfläche mit der Frage ob die EULA akzeptiert werden soll, ist die debconf-Datenbank nicht konsistent.
 
Nun kann die EULA nachträglich akzeptiert werden, sodass das Paket ohne Fehler reinstalliert werden kann:
 
echo "set msttcorefonts/accepted-mscorefonts-eula true" | sudo debconf-communicate
 
=== Grafische Konfiguration ===
==== configure-debian ====
configure-debian ist ein konsolenbasiertes Rekonfigurationsprogramm, welches die Besitzer von Paketen, in ihren Bereich (s.g. "Section") eingeordnet, darstellt.
 
sudo apt-get install configure-debian
 
==== gkdebconf ====
gkdebconf ist ein grafisches Rekonfigurationsprogramm, welches ebenfalls die Pakete in die Unterbereiche einteilt, aber auch alle auf einmal darstellen kann. Das Programm besitzt darüber hinaus die Fähigkeit, die Schnittstellenoberfläche frei zu wählen.
 
sudo apt-get install gkdebconf
 
=== Dateien und Paketen ===
Der folgende Befehl in einem Terminal zeigt an, zu welchem Paket eine Datei gehört:
 
dpkg -S DATEINAME
 
Das gefundene Paket kann dann, sofern ein Eintrag in der debconf-Datenbank besteht, mit <tt>dpkg-reconfigure</tt> neu konfiguriert werden. Existiert kein solcher Eintrag, wird bei Ausführung des Befehls nichts gemacht.
[[Kategorie:APT]]

Aktuelle Version vom 13. September 2025, 14:31 Uhr

Advanced Packaging Tool - (APT)

Beschreibung

APT ist ein Paketmanagement-System, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist

Mittels APT ist es sehr einfach Programmpakete

  • zu suchen
  • zu installieren
  • das ganze System auf den neuesten Stand zu bringen

Das Advanced Packaging Tool (APT) ist ein Paketverwaltungssystem, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist und dpkg zur eigentlichen Paketverwaltung benutzt

  • Ziel ist es, eine einfache Möglichkeit zur Suche, Installation und Aktualisierung von Programmpaketen zur Verfügung zu stellen

APT besteht aus einer Programmbibliothek und mehreren diese Bibliothek nutzenden Kommandozeilen-Programmen, von denen apt-get und apt-cache zentral sind

APT steht auch in OpenSolaris zur Verfügung (es wurde in die Distribution Nexenta OS aufgenommen) und wurde auch auf Mac OS X portiert, wo es im Rahmen des Fink-Projektes zur Installation von Debian-Softwarepaketen genutzt wird

Basierend auf der Idee von APT wurde Win-Get erschaffen, welches eine ähnliche Paketverwaltung für MS Windows zur Verfügung stellt

Themen

apt-get
APT/Kommandos
APT/Paketquellen
APT/Pinning
Apt-cache
apt-file
apt-key
Tipps
dpkg APT setzt auf dpkg auf
aptitude
Problembehebung
debconf
apt-proxy Apt-cacher und apt-proxy
APT-RPM
Frontends
/etc/apt/sources.list


Anhang

Siehe auch


Links

Weblinks