20.7APT

APT (Advanced Packaging Tool) ist für Debian-Pakete das, was DNF, Yum bzw. ZYpp für RPM-Pakete ist: ein High-Level-Paketverwaltungssystem, das Pakete selbstständig von Paketquellen herunterlädt und Paketabhängigkeiten automatisch auflöst. Die Kombination aus Debian-Paketen und APT ergibt momentan das wohl ausgereifteste Paketverwaltungssystem für Linux. Es wird unter anderem von Ubuntu und Debian als Standardsystem zur Paketverwaltung eingesetzt.

Zur eigentlichen Paketverwaltung stehen zwei alternative Kommandos zur Auswahl: apt-get und aptitude. Beide Kommandos sind einander sehr ähnlich und weisen bei einfachen Operationen sogar dieselbe Syntax auf. Sowohl apt-get install paketname als auch aptitude install paketname laden das angegebene Paket und alle davon abhängigen Pakete herunter und installieren sie.

Momentan kommt apt-get standardmäßig unter Ubuntu zum Einsatz, während Debian den Einsatz von aptitude empfiehlt. Unter Debian sind aber standardmäßig beide Kommandos installiert, und Sie machen nichts falsch, wenn Sie apt-get verwenden.

Wie Yum, DNF und ZYpp erfordert auch APT spezielle Paketquellen, die neben den DEB-Paketen auch Metainformationen über den Inhalt der Pakete und deren Abhängigkeiten zur Verfügung stellen.

Konfiguration

Die Konfiguration von APT erfolgt durch die beiden Dateien apt.conf.d/* und sources.list im Verzeichnis /etc/apt. Weitere Definitionen von Paketquellen können sich im Verzeichnis sources.list.d befinden.

apt.conf.d/* enthält in der Regel nur wenige Basiseinstellungen, die Sie zumeist so belassen, wie sie von Ihrer Distribution vorgegeben sind. Schon interessanter ist sources.list. Diese Datei enthält zeilenweise die APT-Paketquellen. Die Syntax jeder Zeile sieht so aus:

pakettyp uri distribution [komponente1] [komponente2] [komponente3] ...

Der Pakettyp lautet deb für gewöhnliche Debian-Pakete bzw. deb-src für Quellcodepakete. Die zweite Spalte gibt das Basisverzeichnis der Paketquelle an. Neben HTTP- und FTP-Verzeichnissen unterstützt APT auch gewöhnliche Verzeichnisse, RSH- oder SSH-Server sowie CDs bzw. DVDs.

Die dritte Spalte bezeichnet die Distribution. Im folgenden Listung handelt es sich dabei um Ubuntu 15.10 mit dem Codenamen »Wily«. Alle weiteren Spalten geben die Komponenten der Distribution an, die berücksichtigt werden können. Die Komponentennamen sind von der Distribution und von der Paketquelle abhängig! Beispielsweise unterscheidet Ubuntu zwischen main-, restricted-, universe- und multiverse-Paketen, während Debian zwischen den Komponenten main, contrib, non-free etc. differenziert.

Die zuerst genannten Paketquellen werden bevorzugt: Wenn ein bestimmtes Paket also in mehreren Quellen zum Download zur Verfügung steht, lädt APT es von der ersten Quelle herunter. Das folgende Listing verdeutlicht die Syntax. Aus Platzgründen wurde dabei jeder Eintrag über zwei Zeilen verteilt.

# Datei /etc/apt/sources.list (Ubuntu) deb http://de.archive.ubuntu.com/ubuntu/ wily \ main restricted universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ wily-updates \ main restricted universe multiverse deb http://security.ubuntu.com/ubuntu wily-security \ main restricted universe multiverse

Veränderungen an sources.list führen Sie am einfachsten mit einem Texteditor durch. Alternativ können Sie auch das Programm apt-setup oder eine grafische Benutzeroberfläche wie Synaptic zu Hilfe nehmen.

Bei den meisten APT-Quellen im Internet sind die Metadateien zur Beschreibung der Paketquellen durch einen Schlüssel signiert. Weiters enthalten die APT-Inhaltsverzeichnisse Prüfsummen für alle Pakete. Mit diesem Kontrollmechanismus kann sichergestellt werden, dass kein Paket nachträglich verändert wurde. Diese Kontrolle funktioniert aber nur, wenn APT den öffentlichen Teil des Schlüssels kennt und somit die Authentizität des Paketarchivs feststellen kann. Um einen Schlüssel für APT einzurichten, verwenden Sie das Kommando apt-key:

root# apt-key add schlüsseldatei.gpg

Das apt-get-Kommando

Die eigentliche Paketverwaltung führen Sie wahlweise mit den Kommandos apt-get oder mit dem im nächsten Abschnitt beschriebenen Kommando aptitude durch. Die wichtigsten apt-get-Kommandos sind in Tabelle 20.6 zusammengefasst.

Aufgabe

Kommando

Metadaten aus den Paketquellen aktualisieren

apt-get update

Paket installieren

apt-get install name

Alle Pakete aktualisieren

apt-get upgrade

Wie oben, aber bei Bedarf auch neue, abhängige Pakete installieren

apt-get dist-upgrade

Paket entfernen

apt-get remove name

Nicht mehr benötigte Pakete entfernen

apt-get autoremove

Tabelle 20.6Wichtige apt-get-Kommandos

Bevor Sie Pakete installieren, sollten Sie apt-get update ausführen und damit die neuesten Informationen aus den Paketquellen herunterladen. Dadurch werden weder Pakete installiert noch aktualisiert; es geht hier nur um die Paketbeschreibungen, also um die Metadaten! Die meisten anderen Paketverwaltungssysteme (Yum, ZYpp) aktualisieren diese Metadaten bei Bedarf selbstständig – aber eben nicht bei apt-get und aptitude. Anschließend können Sie ein neues Paket mit apt-get install herunterladen und installieren:

root# apt-get update root# apt-get install apache2 ... Die folgenden zusätzlichen Pakete werden installiert: apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 Vorgeschlagene Pakete: apache2-doc apache2-suexec apache2-suexec-custom Die folgenden NEUEN Pakete werden installiert: apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 0 aktualisiert, 6 neu installiert, 0 zu entfernen und 11 nicht aktualisiert. Es müssen 1472kB an Archiven heruntergeladen werden. Nach dieser Operation werden 5452kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? ...

apt-get remove paketname entfernt das angegebene Paket. Ursprünglich zusammen mit dem Paket installierte abhängige Pakete bleiben davon aber unberührt. Abhilfe schafft apt-get autoremove. Dieses Kommando entfernt alle nicht mehr benötigten Pakete.

Das richtige Kommando zur Durchführung von Updates ist in aller Regel apt-get dist-upgrade. Wenn es aufgrund geänderter Paketabhängigkeiten erforderlich ist, werden dadurch auch zusätzliche Pakete installiert bzw. vorhandene Pakete entfernt. apt-get upgrade führt zwar auch ein Update durch, rührt aber Pakete nicht an, wenn aufgrund von geänderten Abhängigkeiten noch zusätzliche Pakete installiert werden müssen.

root# apt-get dist-upgrade

apt-get source paketname installiert den Quellcode des gewünschten Pakets in das aktuelle Verzeichnis. Weitere Details finden Sie in Abschnitt 21.2, »Programme selbst kompilieren«.

Um ein Update auf die nächste Version von Debian oder Ubuntu durchzuführen, passen Sie zuerst die Paketquellen in /etc/apt/sources.list entsprechend an. Insbesondere müssen Sie dort den Codenamen der jeweiligen alten Version durch den der neuen Version ersetzen, also z.B. bei einem Update von Debian 7 auf Version 8 wheezy durch jessie. Anschließend führen Sie apt-get dist-upgrade aus. Der Download und die Installation der Pakete wird je nach Installationsumfang circa eine halbe Stunde dauern. Danach starten Sie Ihren Rechner neu – fertig!

Leider sind Release-Updates trotz des ausgezeichneten Debian-Paketverwaltungssystems eine heikle Angelegenheit. Dass nach dem Update wirklich alle Programme und Server-Dienste wie bisher funktionieren, ist eher ein Glücks- als der Regelfall. Deswegen ziehe ich eine Neuinstallation zumeist vor.

Das aptitude-Kommando

Das Kommando aptitude baut ebenfalls auf APT auf. Wenn Sie das Programm kommandoorientiert einsetzen (aptitude install paketname), ist es weitgehend syntaxkompatibel zu apt-get. Die meisten in Tabelle 20.6 aufgezählten Kommandos – mit der Ausnahme von autoremove – stehen in gleicher Form für aptitude zur Verfügung. Das Pendant zu apt-get dist-upgrade lautet allerdings aptitude full-upgrade.

Alternativ können Sie das Programm auch mit einer Text-Benutzeroberfläche in einer Konsole nutzen (siehe Abbildung 20.2), indem Sie es einfach ohne weitere Parameter starten. Zur Menüauswahl verwenden Sie die Tastenkombination (Strg)+(T). Wirklich intuitiv ist aptitude trotz Menü nicht zu bedienen; die meisten Anwender verwenden aptitude daher wie apt-get einfach zum Ausführen einzelner Kommandos.

Paketverwaltung mit
  aptitude

Abbildung 20.2Paketverwaltung mit aptitude

aptitude bietet im Vergleich zu apt-get einen entscheidenden Vorteil: Das Programm merkt sich, welche abhängigen Pakete installiert wurden, und entfernt diese bei einer Deinstallation automatisch wieder. Wenn Sie beispielsweise das Programm xyz installieren und dieses fünf weitere Pakete (lib-abc, lib-efg etc.) voraussetzt, dann werden diese Pakete bei der Deinstallation von xyz wieder entfernt, sofern mittlerweile kein anderes Paket davon abhängig ist. Wenn Sie xyz dagegen mit apt-get oder Synaptic entfernen, bleiben die abhängigen Pakete lib-abc, lib-efg etc. erhalten. Nach einer Weile weiß niemand mehr, warum die Pakete installiert worden sind. Debian empfiehlt deswegen explizit die Verwendung von aptitude anstelle von apt-get zur Paketverwaltung.

Die beiden folgenden Kommandos installieren zuerst das Paket mysql-server und entfernen es dann wieder. Bemerkenswert ist, dass beim zweiten Kommando die zahlreichen zusammen mit mysql-server installierten abhängigen Pakete weitestgehend wieder entfernt werden.

root# aptitude install mysql-server Die folgenden NEUEN Pakete werden zusätzlich installiert: libaio1a libdbd-mysql-perla libdbi-perla libhtml-template-perla libmysqlclient18a libterm-readkey-perla mysql-client-5.5a mysql-commona mysql-server mysql-server-5.5a mysql-server-core-5.5a 0 Pakete aktualisiert, 11 zusätzlich installiert, 0 werden entfernt. root# aptitude remove mysql-server Die folgenden Pakete werden ENTFERNT: libaio1u libdbd-mysql-perlu ... mysql-server-core-5.5u 0 Pakete aktualisiert, 0 zusätzlich installiert, 10 werden entfernt

APT-Zusatzkommandos

Zur Installation von Paketgruppen greifen Debian und Ubuntu in der Regel auf Metapakete zurück: Das sind leere Pakete, die lediglich eine Menge Paketabhängigkeiten definieren. Beispielsweise wird zusammen mit dem Metapaket build-essential eine ganze Sammlung von Paketen mit grundlegenden Entwicklungswerkzeugen installiert (Compiler, make etc.).

Daneben gibt es noch einen zweiten Mechanismus zur Definition von Paketgruppen, der auf dem Kommando tasksel basiert. Dieser Mechanismus ist vor allem dazu gedacht, während der Installation der Distribution auf einfache Weise Paketgruppen auszuwählen. tasksel kann aber natürlich auch später im laufenden Betrieb verwendet werden: Eine Liste aller verfügbaren Paketgruppen liefert tasksel --list-task. Zur Installation von Paketgruppen verwenden Sie tasksel install gruppenname.

Wenn tasksel ohne Optionen ausgeführt wird, erscheint ein Dialog zur Auswahl der gewünschten Paketgruppen.

apt-cache ermittelt diverse Daten zu den verfügbaren bzw. zu bereits installierten Paketen:

root# apt-cache show apache2 Package: apache2 Description: next generation, scalable, extendable web server ... root# apt-cache search scribus | sort lprof - Hardware Color Profiler scribus - Open Source Desktop Publishing scribus-template - additional scribus templates

Unter Ubuntu ist standardmäßig das Paket apturl mit dem Programm apturl-gtk installiert. Es ermöglicht nach einer Rückfrage die Installation von Paketen einfach durch das Anklicken spezieller atp:-Links im Webbrowser. Auf derartige Links stoßen Sie vor allem auf Ubuntu-Wikis und -Foren.

Updates automatisieren

APT wird normalerweise so installiert, dass Sie lediglich einige Konfigurationsdateien anpassen müssen, um Updates automatisch herunterzuladen und eventuell auch gleich zu installieren. Die erforderlichen Konfigurationsdateien sind Teil des Pakets unattended-upgrades, das unter Ubuntu bereits standardmäßig installiert ist.

Ausgangspunkt für die Download- und Update-Automatik ist das Programm Cron, das einmal täglich das Script /etc/cron.daily/apt ausführt. Es wertet die Konfigurationsdatei /etc/apt/apt.conf.d/* aus und führt bei Bedarf das Upgrade-Kommando unattended-upgrade aus.

Automatische Updates aktivieren Sie, indem Sie den Parameter Unattended-Upgrade auf 1 stellen. Dieser Wert gibt an, nach wie vielen Tagen ein Update versucht werden soll. 0 bedeutet: kein automatisches Update durchführen. Unter Ubuntu gibt es die Datei 10periodic bereits, und Sie müssen nur die betreffende Zeile hinzufügen. Unter Debian müssen Sie hingegen die ganze Datei neu einrichten.

// Datei /etc/apt/apt.conf.d/10periodic // tägliche Updates aktivieren APT::Periodic::Unattended-Upgrade "1";

Die Datei 50unattended-upgrades enthält einige weitere Optionen: Unter Ubuntu gibt Allowed-Origins an, welche Paketquellen für das automatische Update berücksichtigt werden sollen. Standardmäßig ist die Installation von Sicherheits-Updates vorkonfiguriert. Unter Debian müssen Sie hingegen den Parameter Origins-Patterns explizit einstellen und die gewünschten Update-Quellen angeben:

// Datei /etc/apt/apt.conf.d/50unattended-upgrades (Debian) Unattended-Upgrade::Origins-Pattern { "o=Debian,a=stable-updates"; };

Mit Package-Blacklist können Sie einzelne Pakete vom automatischen Update ausschließen. Zu guter Letzt können Sie mit Mail eine Adresse angeben, an die das Kommando unattended-upgrade nach erfolgten Updates einen kurzen Statusbericht sendet. Der E-Mail-Versand setzt voraus, dass auf dem Rechner ein E-Mail-Server eingerichtet und das Paket mailx installiert ist.

// folgende Pakete nicht aktualisieren Unattended-Upgrade::Package-Blacklist { "vim"; ... }; // E-Mail über Update-Status senden Unattended-Upgrade::Mail "root@localhost";

Abschließend noch einige Interna zum Upgrade-Prozess: /etc/cron.daily/apt enthält ein sleep-Kommando, das das Script für eine zufällige Anzahl von bis zu 1800 Sekunden anhält, also für bis zu einer halben Stunde. Diese Zwangspause vermeidet, dass Tausende Rechner aufgrund des Cron-Jobs gleichzeitig auf die Paketquellen zugreifen.

Das Script /usr/bin/unattended-upgrade protokolliert alle Updates bzw. Update-Versuche in Logging-Dateien im Verzeichnis /var/log/unattended-upgrade. Außerdem legt /etc/cron.daily/apt im Verzeichnis /var/lib/apt/periodic/ Timestamp-Dateien an, aus denen hervorgeht, wann bestimmte Operationen zum letzten Mal durchgeführt wurden.

unattended-upgrade aktualisiert keine Pakete, für die ein sogenannter conffile prompt besteht, d.h., deren Konfigurationsdatei manuell verändert wurde. Leider geht das nur aus den Logging-Dateien hervor, nicht aus der Status-E-Mail. Da dieser Fall in der Praxis immer wieder vorkommt, müssen Sie trotz der automatisierten Updates regelmäßig kontrollieren, ob es nicht doch Updates gibt, die manuell durchzuführen sind.

Kernel-Updates werden erst wirksam, wenn der Rechner neu gestartet wird. unattended-upgrade kümmert sich darum nicht – Sie müssen den Rechner also durch ein reboot-Kommando selbst neu starten.

Für und wider automatische Updates

Automatische Updates mindern das Risiko, dass ein Angreifer eine bereits behobene Sicherheitslücke ausnutzt; aber sie können auch fatale Folgen haben, wenn einzelne Server-Funktionen aufgrund eines defekten Updates plötzlich nicht mehr richtig laufen. Eine Alternative zu automatischen Updates ist ein Cron-Script, das einmal täglich die Verfügbarkeit neuer Updates überprüft (z.B. durch apt-get dist-upgrade --simulate) und das Ergebnis als E-Mail an den Administrator sendet.

Paket-Proxy

Wenn in Ihrem Netzwerk Dutzende Debian- oder Ubuntu-Rechner laufen und jeder für sich seine Updates von einer externen Paketquelle bezieht, ergibt das ein Datenvolumen von einigen GByte pro Monat. Auch wenn die meisten Internetzugänge momentan ohne Download-Limit angeboten werden, verstopfen die Updates das Netz und machen den Internetzugang für das LAN langsamer als notwendig.

Es liegt auf der Hand, im LAN einen zentralen Zwischenspeicher (Proxy) einzurichten, über den alle anderen Rechner Paket-Updates beziehen. Hierfür gibt es eine ganze Palette von Programmen, z.B. apt-cacher, apt-cacher-ng, squid-deb-proxy, apt-proxy (wird nicht mehr gewartet) sowie approx. Ich stelle Ihnen an dieser Stelle exemplarisch apt-cacher vor.

Auf dem Cache-Server, also auf dem Rechner, der den Zwischenspeicher verwaltet, muss das Paket apt-cacher installiert werden. Viele apt-cacher-Anleitungen im Internet behaupten, dass Sie auch Apache installieren müssen. Das ist nicht richtig! apt-cacher arbeitet selbstständig. Ein Zusammenspiel mit Apache ist nur dann zweckmäßig, wenn die Kommunikation zu apt-cacher über den HTTP-Port 80 erfolgen soll.

root# apt-get install apt-cacher

Damit apt-cacher in Zukunft automatisch als Dämon gestartet wird, müssen Sie eine kleine Änderung an /etc/default/apt-cacher durchführen:

# Datei /etc/default/apt-cacher AUTOSTART=1 ...

/etc/apt-cacher/apt-cacher.conf enthält die restliche Konfiguration. Die meisten Einstellungen können Sie so lassen, wie sie sind: Der APT-Proxy ist dann über den Port 3142 für alle Rechner zugänglich. Die Paketdateien werden im Verzeichnis /var/cache/apt-cacher gespeichert. Aus Sicherheitsgründen empfiehlt es sich, die folgenden Änderungen an der Konfiguration durchzuführen:

# Datei /etc/apt-cacher/apt-cacher.conf ... daemon_addr=192.168.0.1 allowed_hosts=192.168.0.0/24 ...

Damit binden Sie den Dämon an eine bestimmte Adresse (hier 192.168.0.1, wichtig bei Rechnern mit mehreren Netzwerkschnittstellen) und erlauben nur Clients aus dem Adressbereich 192.168.0.*, den Proxy zu nutzen. Diese Adressen müssen Sie natürlich an die Gegebenheiten Ihres lokalen Netzwerks anpassen! Außerdem ist es zweckmäßig, den Port 3142 zum Internet hin durch eine Firewall zu blockieren. Nach diesen Konfigurationsarbeiten starten Sie apt-cacher erstmalig:

root# service apt-cacher start

apt-cacher protokolliert alle Zugriffe sowie eventuelle Fehler in Logging-Dateien im Verzeichnis /var/log/apt-cacher.

Das Verzeichnis /var/cache/apt/archive auf dem Server enthält normalerweise bereits eine Menge Pakete, die von der lokalen Paketverwaltung für Installationen bzw. Updates heruntergeladen wurden. Sie können diese Pakete in den Cache von apt-cacher importieren. Das ist zweckmäßig, wenn zu erwarten ist, dass diese Pakete von anderen Rechnern im LAN benötigt werden:

root# cd /usr/share/apt-cacher root# ./apt-cacher-import.pl /var/cache/apt/archives

Am Client vergewissern Sie sich mit einem Webbrowser, dass apt-cacher via HTTP erreichbar ist. Dazu geben Sie die folgenden Adressen ein, wobei Sie natürlich mein-apt-cacher durch den Hostnamen oder die IP-Adresse des Proxy-Servers ersetzen:

http://mein-apt-cacher:3142
http://mein-apt-cacher:3142/report

Die erste Seite fasst die Konfiguration zusammen, die zweite Seite gibt Informationen über die Effizienz des Proxys, die umso besser ist, je länger der Proxy läuft und je mehr Clients ihn benutzen.

Wenn apt-cacher prinziell funktioniert, müssen Sie nur noch eine kleine Änderung an der APT-Konfiguration durchführen, damit auch apt-get den Proxy verwendet. Dazu erstellen Sie die folgende neue Datei, wobei Sie wieder mein-apt-cacher durch den Hostnamen oder die IP-Adresse des Proxy-Servers ersetzen:

// Datei /etc/apt/apt.conf.d/01proxy Acquire::http::Proxy "http://mein-apt-cacher:3142/";

Von nun an verwenden alle APT-Kommandos den neuen Proxy. Dateien, die dort noch nicht verfügbar sind, müssen natürlich wie bisher aus dem Internet heruntergeladen werden. Aber wenn der zweite Rechner im LAN ebenfalls ein Update durchführt oder ein Paket installiert, das vor Kurzem auch auf einen anderen Rechner installiert wurde, stehen die erforderlichen Pakete sofort zur Verfügung. Beachten Sie aber, dass Sie die Aquire-Zeile mit // auskommentieren müssen, wenn Sie mit Ihrem Notebook unterwegs sind und Updates oder Pakete installieren möchten, obwohl Sie gerade keinen Zugang zum Proxy-Server haben!

Synaptic

Die populärste grafische Benutzeroberfläche zur Administration von Debian-Paketen auf der Basis der APT-Kommandos hieß lange Zeit Synaptic. Aktuelle Versionen von Debian und Ubuntu sehen zwar mittlerweile standardmäßig die modernere PackageKit-Benutzeroberfläche gpk-application bzw. das Ubuntu Software-Center zur Installation von Programmen vor; persönlich ziehe ich aber weiterhin das stärker technisch orientierte Programm Synaptic vor, um gezielt nach Paketen zu suchen und diese zu installieren (siehe Abbildung 20.3).

Paketverwaltung mit
 Synaptic

Abbildung 20.3Paketverwaltung mit Synaptic

Synaptic besitzt gleich zwei Suchfunktionen: eine Schnellsuche für Paketnamen und -beschreibungen und eine herkömmliche Suchfunktion, in der Sie auch nach anderen Kriterien suchen können. Beide Suchfunktionen können miteinander kombiniert werden: Die Schnellsuche bezieht sich dann auf die Suchergebnisse der herkömmlichen Suche.

Um ein bestimmtes Paket zu installieren, wählen Sie es per Doppelklick zur Installation aus. Wenn das Paket von anderen Paketen abhängig ist, erscheint ein Dialog mit allen weiteren Paketen, die ebenfalls installiert werden müssen. Die eigentliche Installation beginnt mit dem Button Anwenden, wobei Sie noch eine Zusammenfassung aller geplanten Aktionen bestätigen müssen.

Die Liste aller zur Installation vorgemerkten Pakete sehen Sie, wenn Sie zuerst den Button Benutzerdefinierte Filter und dann den Listeneintrag Vorgemerkte Änderungen anklicken. Synaptic merkt sich alle Installationsvorgänge. Sie können diese jederzeit mit Datei • Chronik nachvollziehen.

Die Verwaltung der Paketquellen erfolgt im Dialog Einstellungen • Paketquellen. Dort werden alle bekannten Paketquellen angezeigt. Durch einen Klick auf das Auswahlhäkchen können Sie einzelne Paketquellen rasch aktivieren bzw. deaktivieren. Mit Bearbeiten verändern Sie die Eigenschaften vorhandener Paketquellen, mit Hinzufügen richten Sie eine neue Paketquelle ein.

Ein Paket gilt als »defekt«, wenn während der Installation oder Deinstallation ein Problem auftritt und der Vorgang nicht korrekt abgeschlossen werden kann. Synaptic und andere Paketverwaltungswerkzeuge verweigern ihren Dienst, bis dieses Problem gelöst ist.

Zur Abhilfe klicken Sie in Synaptic in der Seitenliste auf den Button Benutzerdefinierte Filter und dann auf den Eintrag Defekt. Synaptic zeigt nun eine Liste aller defekten Pakete an. Markieren Sie alle Pakete durch (Strg)+(A), klicken Sie die Liste mit der rechten Maustaste an, und wählen Sie den Eintrag Zum erneuten Installieren vormerken. Anschließend führen Sie die Neuinstallation durch Anwenden aus. Sollten dabei abermals Probleme auftreten, markieren Sie die betreffenden Pakete zum Entfernen.

Locking-Probleme

Es kann immer nur ein Paketverwaltungsprogramm laufen. Beim Versuch, zwei Paketverwaltungsprogramme gleichzeitig auszuführen, erscheint die Warnung unable to get exclusive lock. Das bedeutet, dass das Programm nicht allein auf die internen Paketverwaltungsdateien zugreifen kann. Abhilfe: Beenden Sie eines der beiden Programme.

In seltenen Fällen tritt die lock-Warnung auch dann auf, wenn augenscheinlich kein anderes Paketverwaltungsprogramm mehr läuft. Die Ursache ist zumeist, dass ein Programm die lock-Datei beim Programmende nicht ordnungsgemäß entfernt hat. Gegebenenfalls löschen Sie die lock-Datei ganz einfach: rm /var/lib/dpkg/lock.