Die technische Basis der Paket-Infrastruktur ist bei Debian, Ubuntu sowie Linux Mint identisch und seit vielen Jahren bewährt. Trotzdem kann es zu Fehlern kommen: Systemupdates beispielsweise schlagen fehl oder es lassen sich keine neuen Programme installieren. Viele Probleme lasen sich einfach lösen, bei schweren Fehlern in der Systeminstallation kann die Fehlersuche jedoch aufwendig werden.
Das Ubuntu/Debian-Paketformat
Das Paketmanagement bei Debian, Ubuntu und verwandten Systemen ist zwar komplex, aber trotzdem transparent und nachvollziehbar. System und Software werden mit Hilfe von Softwarepaketen installiert, die in DEB-Dateien vorliegen. Dabei handelt es sich um gepackte Archive, die ausführbare Dateien, Bibliotheken und Konfigurationsdateien enthalten. Ebenfalls enthalten sind meistens einige Scripts, die beim Setup beispielsweise Konfigurationsdateien anpassen oder Systembenutzer erstellen.
Eine DEB-Datei enthält aber selten alle Dateien, die zum Start des jeweiligen Programms erforderlich sind. Fast alle Tools und Anwendungen benötigen zusätzliche Programmbibliotheken, die oft Funktionen für mehrere Programme bereitstellen. Im DEB-Paket ist daher eine Textdatei mit Informationen über die Abhängigkeiten von anderen Paketen sowie optionalen Empfehlungen für zusätzliche Pakete enthalten.

Fehlerberichte: Bei https://bugs.launchpad.net/ubuntu finden Sie eingesandte Fehlerberichte zu einzelnen Ubuntu-Paketen und oft auch Problemlösungen.
IDG
Der Distributor muss dafür sorgen, dass alle Pakete für ein System zusammenpassen und alle Abhängigkeiten erfüllbar sind. Die Pakete stammen jedoch nicht aus einer Hand. Es sind weltweit zahlreiche Entwickler („Maintainer“) an der Erstellung der Pakete beteiligt. Vor allem bei selten genutzten Programmen kommen daher Installationsfehler vor, die vielleicht bisher vom Anbieter nicht entdeckt wurden. Eine Suche nach der Fehlermeldung im Internet kann weiterhelfen. Eine Quelle für Informationen ist https://bugs.launchpad.net/ubuntu. Hier kann man nach Paketen suchen und sich die gemeldeten Fehler anzeigen lassen.
DEB-Dateien sind digital signiert und es gibt Prüfsummen für die enthaltenen Dateien. Der Paketmanager verweigert die Installation, wenn Signaturen oder Prüfsummen ungültig sind. Manchmal ist auch ein falsch gesetztes Systemdatum die Ursache. Liegt es zu weit in der Vergangenheit oder Zukunft, wird der Schlüssel als ungültig angesehen.
Tipp: Wer sich den Inhalt einer DEB-Datei genauer ansehen möchte, kann die Dateien extrahieren. Installieren Sie dazu das Archivprogramm ar mit
sudo apt install binutils
und entpacken Sie dann eine DEB-Datei mit
ar xv [Name der Datei]
Das Ergebnis sind die Dateien „control.tar.zst“ und „data.tar.zst“ (oder .gz), die Sie mit
tar xvf [tar.zst-Datei]
entpacken. Dabei entstehen Order, in denen die ausführbaren Dateien und Konfigurationsdateien zu finden sind. „control“ enthält eine Beschreibung des Pakets und Informationen zu Abhängigkeiten, „md5sums“ die Prüfsummen der Dateien.

Paket-Internat: Die Datei „control“ in einem DEB-Paket enthält alle Informationen. Hinter „Depends:“ beispielsweise stehen die Paketabhängigkeiten inklusive Versionsnummern.
IDG
Lesetipp: Linux-Abstürze: So kommen Sie Problemen auf die Spur
Pakete und Abhängigkeiten
In der Paketdatenbank sind die Informationen zu allen installierten Paketen gespeichert. Wird ein neues Programm installiert, lässt sich darüber prüfen, ob zusätzlich erforderliche Tools und Bibliotheken bereits vorhanden sind. Wenn nicht, werden diese automatisch mitinstalliert. Bei der Deinstallation eines Pakets werden gemeinsam genutzte und automatisch installierte Komponenten nicht entfernt.
Anders sieht es aus, wenn man etwas deinstalliert, das von anderen Paketen benötigt wird. Es erscheint ein Hinweis, welche Pakete außerdem entfernt werden. Diese Meldung sollte man immer sehr ernst nehmen und genau prüfen. Wenn man die Situation nicht sicher einschätzen kann, sollte man auf die Deinstallation verzichten.

Nötige Pakete: Das Tool debtree bereitet den meist komplexen Abhängigkeitsbaum grafisch auf. Selbst ein einfaches Tool wie Midnight Commander benötigt mehrere Pakete.
IDG
Die Abhängigkeiten von anderen Paketen müssen exakt erfüllt sein. Anwendungen benötigen die gleiche oder eine höhere Nebenversion von Programmbibliotheken, mit denen sie erstellt wurden. Bei Linux ist es Standard, dass bei der Hauptversion einer Programmbibliothek zwar neue Funktionen hinzukommen können, alte aber nicht wegfallen. Beim Upgrade, etwa von einer Version 6.x auf 7.x, ist das nicht immer der Fall.
Im optimalen Fall verwenden alle Programme einer Distribution die gleichen Versionen der Programmbibliotheken. Das ist allerdings nicht immer möglich. Linux löst das Problem mit Versionsnummern in den Dateien. Unterhalb von „/usr/ lib“ können beispielsweise die Dateien „libx.so.1“ und „libx.so.2“ liegen und jedes Programm findet dann die jeweils benötigte Version. Nach einem Update kann die Datei dann „libx.so.2.1.1“ heißen. In diesem Fall verweist der symbolische Link mit der Nummer der Hauptversion „libx.so.2“ auf „libx.so.2.1.1“ und für die Programme hat sich nichts geändert.
Bei komplexeren Programmen ergibt sich ein sehr weit verzweigter Baum von Abhängigkeiten („dependency tree“) und die Paketverwaltung installiert zahlreiche Pakete. Wer es genauer wissen möchte, kann mit der Befehlszeile
debtree [Paketname] | dot -Tpng > bild.png
eine grafische Darstellung der Abhängigkeiten eines Pakets erstellen. Die Pakete „debtree“ und „graphviz“ müssen dafür installiert sein.
Siehe auch: Linux: Boot- & Startprobleme beseitigen
Paketverwaltung im Terminal
Das zentrale Programm zur Paketverwaltung heißt unter Ubuntu und verwandten Systemen dpkg. Es wird im Hintergrund von allen Tools zur Paketverwaltung genutzt. Das Tool lädt jedoch keine Paketdateien herunter und prüft keine Abhängigkeiten. Deshalb werden Sie es nur selten direkt nutzen. Eine heruntergelade DEB-Datei lässt sich bei Bedarf im Terminal mit
sudo dpkg -i [DEB-Datei]
installieren. Bei mehreren Dateien verwenden Sie im Downloadordner
sudo dpkg -i *.deb
Sollten die Paketabhängigkeiten nicht bereits erfüllt sein, verwenden Sie danach diesen Befehl:
sudo apt -f install
Das Tool apt prüft die Abhängigkeiten und installiert alle fehlenden Pakete.

Mint-Spezialität: Der Start von apt zeigt zahlreiche Optionen. Tatsächlich handelt es sich um ein Wrapper-Script, das je nach Option unterschiedliche Tools startet.
IDG
Seit Version 1.1 (ab Ubuntu 16.04) kann man DEB-Dateien auch direkt über apt installieren, wobei die Abhängigkeiten automatisch aufgelöst werden:
sudo apt install ./[DEB-Datei]
„install“ erwartet als Parameter den vollständigen Pfad zur Datei oder im Download-Verzeichnis ein vorangestelltes „./“. Mehrere Pakete lassen sich mit
sudo apt install ./*.deb
einrichten.
Reguläre Nutzung von apt: Standardmäßig greift apt auf die in „/etc/apt/sources.list“ und unter „/etc/apt/sources.list-d“ konfigurierten Repositorien zurück. Die typische Anwendung für das Update von Paketen erfolgt mit den zwei Zeilen
sudo apt update
sudo apt upgrade
„update“ aktualisiert die Paketdatenbank, „upgrade“ lädt die Dateien herunter und beginnt mit der Installation. Fehler können auftreten, wenn ein Server gerade nicht erreichbar ist. Probieren Sie es später noch einmal oder kontrollieren Sie die URLs in den Paketquellen. Manchmal ist auch die Paketdatenbank blockiert, wenn im Hintergrund ein automatisches Update läuft (siehe Artikel ab Seite 22).

Auf später verschoben: Bei dieser Meldung sind Updates für die genannten Pakete verfügbar. Die Installation erfolgt jedoch erst, wenn mögliche Fehler beseitigt wurden.
IDG
Eine fehlende IPv6-Unterstützung kann ebenfalls zu Problemen führen. In der Fehlermeldung wird dann bemängelt, dass beispielsweise der Server „2001:67c: 1562::15“ (security.ubuntu.com) nicht erreichbar ist. Da alle Server auch über IPv4- Adressen verfügen, lässt sich das Problem über die apt-Konfiguration beben.
Erstellen Sie mit
sudoedit /etc/apt/apt.conf.d/99force-ipv4
eine zusätzliche Konfigurationsdatei mit dem Inhalt
Acquire::ForceIPv4 "true";
Das Tool apt und die Paketmanager für die grafische Oberfläche verwenden jetzt nur noch IPv4-Adressen.
Unterschiede zwischen apt oder apt-get: apt ist bei Ubuntu eine vereinfachte Version von apt-get. Das Tool bietet die gebräuchlichsten Funktionen, beispielsweise
sudo apt install [Paketname]
zur Installation neuer Pakete. Mehrere Pakete lassen durch Leerzeichen getrennt angeben, beispielsweise
sudo apt install apache2 libapache2-mod-php php php-mysql mysql-server
für die Installation des Webservers Apache, PHP und der Datenbank My SQL. Für die Deinstallation eines Pakets verwenden Sie
sudo apt remove [Paketname]
Das Tool apt-get bietet fast die gleichen Optionen, aber noch einige zusätzliche. Es verhält sich aber teilweise anders. „upgrade“ bei apt-get aktualisiert nur die installierten Pakete, entfernt aber keine Pakete und fügt auch keinen neuen hinzu. Der Linux-Kernel beispielsweise wird damit nicht aktualisiert, weil es sich um ein neues Paket handelt. „apt upgrade“ installiert – wenn nötig – auch neue Pakete, entfernt aber ebenfalls keine Pakete.
Besonderheiten bei Linux Mint: Die Distribution verwendet beim Aufruf von apt ein Script aus dem Ordner „/usr/local/bin“. Abhängig von der verwendeten Option ruft es /usr/bin/apt, apt-get oder andere Tools auf. Bei „update“ und „upgrade“ beispielsweise kommt /usr/bin/apt zum Einsatz, bei „clean“ (heruntergeladene Pakete löschen) oder „check“ (unerfüllte Abhängigkeiten finden) wird apt-get verwendet.
Ungewöhnliche Meldungen von apt: Manchmal gibt „apt upgrade“ eine Info zu automatisch installierten Paketen aus, die nicht mehr benötigt werden. Sie können dann bedenkenlos
sudo apt autoremove
verwenden, um die Pakete zu entfernen. Eine auffällige Meldung ist: „Die folgenden Pakete sind zurückgehalten worden:“. Darunter steht eine Liste mit den betroffenen Paketen. Dahinter verbergen sich Updates, deren problemlose Funktion noch nicht sichergestellt ist.
Die Pakete werden nach und nach an die Benutzer ausgeliefert, und die Entwickler beobachten dann die eingesandten Fehlerberichte. Bei Ubuntu heißt das Verfahren „Phasing“.
apt list --upgradable
gibt die Paketnamen der Updates inklusive der neuen Versionsnummern aus. Mit
apt show [Paketname]=[Neue Versionnummer]
lässt sich der Status eines Pakets ermitteln. Der Wert hinter „Phased-Update-Percentage:“ startet bei zehn Prozent und wird alle sechs Stunden um zehn Prozent erhöht, wenn keine Fehler gemeldet werden. Sie müssen daher nur bis zu maximal 54 Stunden auf die Installation warten, weitere Aktionen sind nicht erforderlich. Auskunft über die jeweils betroffenen Pakete liefert https://people.canonical.com/~ubuntu-archive/phased-updates.html.
Probleme beim Ubuntu-Upgrade beheben

Massive Probleme: Fremdpakete können das Ubuntu-Upgrade verhindern. Bevor es gelingt, müssen alle Pakete durch die meist älteren Originale der Distribution ersetzt werden.
IDG
Besondere Aufgabe erfüllen „apt full-upgrade“ und „apt-get dist-upgrade“. Beide arbeiten identisch und führen Updates auch dann durch, wenn sich Paketabhängigkeiten geändert haben, neue Pakete erforderlich sind oder installierte entfernt werden müssen. Zum Einsatz kommt eines der beiden Kommandos, wenn Sie ein Upgrade auf die nächste Ubuntu-Version im Terminal anstoßen wollen. Denn die Voraussetzung dafür ist ein möglichst vollständig aktualisiertes System. Verwenden Sie die folgenden vier Befehle:
sudo apt update
sudo apt upgrade
sudo apt-get dist-upgrade
sudo do-release-upgrade
In der Regel arbeitet „apt-get dist-upgrade“ unproblematisch. Man sollte es dennoch nicht als standardmäßigen Ersatz für „apt upgrade“ verwenden, weil bei Fehlern unter Umständen wichtige Pakete entfernt werden. In jedem Fall sollten Sie die Ausgaben des Befehls beachten und das Verhalten prüfen, wenn Deinstallationen durchgeführt werden sollen.
Die Ausführung von do-release-upgrade scheitert, wenn Systemaktualisierungen nicht für alle installierten Pakete möglich sind. Dieser Zustand kann nur eintreten, wenn aktuellere Software aus PPA-Repositorien installiert wurde, worauf apt auch hinweist. Man sollte zuerst versuchen, die PPA-Fremdsoftware zu deinstallieren. Vorher ist ein Backup des Systems oder wenigstens der persönlichen Dateien ratsam, weil das erfolgreiche Upgrade nicht mehr garantiert werden kann.
do-release-upgrade deaktiviert zuerst fremde Repositorien in den Listen unter „/etc/apt/sources.list.d“, was man später wieder rückgängig machen muss. Danach kann man ppa-purge verwenden, um die Fremdsoftware zu entfernen. Installieren Sie dieses Tool mit
sudo apt install ppa-purge aptitude
und verwenden Sie es dann so:
sudo ppa-purge -o [Besitzer des PPA] -p [Name des PPA]
Die Werte für die beiden Platzhalter ermitteln Sie aus der URL in der zugehörigen Datei des PPAs unter „/etc/apt/sources. list.d“. Lautet diese beispielsweise „https:// ppa.launchpadcontent.net/SeppHuber/dailybuilds“, verwenden Sie die Befehlszeile
sudo ppa-purge -o SeppHuber-p daily-builds
Das Tool versucht, die Pakete aus dem PPA zu entfernen und – wenn vorhanden – die Pakete durch die gleichnamigen aus den Standard-Repositorien zu ersetzen. Um defekte Abhängigkeiten danach zu reparieren, führen Sie
sudo apt -f install
aus. Anschließend starten Sie erneut
sudo do-release-upgrade
Sollte das Upgrade erneut fehlschlagen, prüfen Sie die Logdatei „/var/log/dist-upgrade/ main.log“. Am Ende der Datei weisen Angaben hinter „Error“ auf defekte Pakete hin, die das Upgrade verhindern. Entfernen Sie diese Pakete mit „apt remove [Paketname]“, auch wenn es sich um wichtige Systempakete handelt. Notieren Sie sich die Paketnamen für die spätere Neuinstallation. Danach sollte do-release-upgrade keine Probleme mehr melden.
Paketverwaltung über die grafische Oberfläche

Anwendungen für jeden Geschmack: Ubuntu Software zeigt, welche Programme verfügbar sind. Beschreibungen, Screenshots und Bewertungen helfen bei der Auswahl.
IDG
Im Terminal ist apt besonders nützlich, wenn man mehrere Pakete gleichzeitig installieren will. Außerdem gibt das Tool meist weiterführende Fehlermeldungen aus, die bei der Suche nach Problemen helfen. Man muss allerdings die Namen der Pakete kennen, die man installieren will. Mehr Komfort bietet die grafische Zentrale „Ubuntu Software“ oder die „Anwendungsverwaltung“ von Linux Mint. Man kann sich die Empfehlungen oder in den Kategorien Programme und Beschreibungen ansehen und neue Programme einrichten. Ubuntu Software zeigt hauptsächlich Desktopanwendungen. Die Installation von Tools für das Terminal oder von Diensten ist daher hier nicht möglich.
Das Werkzeug Synaptic vereint die Vorteile einer grafischen Oberfläche mit denen von apt. Das Tool ist bei Linux Mint bereits vorinstalliert. Ubuntu-Nutzer können es über Ubuntu Software nachinstallieren. Synaptic bietet eine Suchfunktion und mehrere Filter, über die sich die Ansicht auf die gewünschte Software einschränken lässt. Das Tool im Vergleich zu Ubuntu Software etwas unübersichtlicher, dafür liefert die Suche schnellere Ergebnisse.
Anders als mit Ubuntu Software oder seinem Mint-Pendant lassen sich mit Synaptic alle verfügbaren Programme installieren, also auch Tools für die Kommandozeile, Bibliotheken und Entwicklerpakete.