Pakete aktualisieren

Ein Großteil der verfügbaren Software veraltet häufig in recht kurzer Zeit. Die Entwickler veröffentlichen neue Softwarepakete, die um Fehler bereinigt oder bei denen neue Funktionen ergänzt wurden. Das Debian-Team zur Qualitätssicherung hat daher mehrere Ebenen eingeführt, um einerseits mit der mitunter recht dynamischen Entwicklung der Software schrittzuhalten und andererseits sicherzustellen, dass brandneue Software möglichst keine andere, bereits bestehende und funktionierende Software in Mitleidenschaft zieht.

Dazu gehören die verschiedenen Veröffentlichungen wie unstable, testing und stable (siehe [veroeffentlichungen]) sowie der damit festgelegte Zyklus, unter welchen Kriterien von einer Veröffentlichung zur nächsten diffundieren. Mitunter ist das ein recht langer Zeitraum. Desweiteren zählen die verschiedenen Mechanismen dazu, wie Softwarepakete aktualisiert werden. Die dabei verwendeten Begriffe Update'' und Upgrade'' sorgen regelmäßig für Verwirrung.

Im Allgemeinen beschreibt ein Update eine generelle Aktualisierung und Fehlerbereinigung eines Softwarepakets ohne Änderung der Schnittstelle und unter Beibehaltung des bereits bestehenden Funktionsumfangs. Ein Upgrade bezeichnet hingegen eine Aktualisierung eines Softwarepakets zugunsten einer Funktionserweiterung oder Erneuerung, was auch mit einer Veränderung der Schnittstelle einhergehen kann.

APT und aptitude kennen die beiden Unterkommandos update und upgrade in verschiedenen Schweregraden und verknüpfen damit wechselnde Funktionalitäten. Das Team um APT und aptitude hat die Bedeutung der Unterkommandos im Laufe der Entwicklung verändert und zudem auch neue Schlüsselworte hinzugefügt. Das zielt darauf ab, die Unterscheidung der Aktionen und deren Benutzung im Alltag zu vereinfachen. Erschwert wird das dadurch, dass sich bestehende Gewohnheiten i.d.R. nur Schritt für Schritt ändern und daher ihre Zeit brauchen, um sich durchzusetzen.

Die Paketverwaltung mittels apt-get, apt (ab APT 1.0) und aptitude kennt jeweils drei Unterkommandos zur Aktualisierung:

  • update, verwendbar bei apt-get, apt und aptitude,

  • upgrade, bei apt und aptitude genannt safe-upgrade, sowie

  • dist-upgrade, bei apt und aptitude genannt full-upgrade.

Jedes Unterkommando beinhaltet eine spezifische Aktualisierung und wirkt sich entweder nur auf die Paketlisten (update) oder auf die Pakete selbst aus (upgrade, dist-upgrade, safe-upgrade und full-upgrade).

update

Das Unterkommando update steht in identischer Form und Bedeutung bei den drei Kommandos apt-get, apt und aptitude zur Verfügung. Es dient dabei nur zur Aktualisierung der Paketlisten, die in der Datei /etc/apt/sources.list hinterlegt sind. Es beinhaltet jedoch nicht die Erneuerung der Pakete selbst. Auf die Benutzung dieses Unterkommandos gehen wir ausführlich unter Liste der verfügbaren Pakete aktualisieren in [liste-der-verfuegbaren-pakete-aktualisieren] ein.

upgrade und safe-upgrade

Dem Unterkommando upgrade von apt-get entspricht safe-upgrade bei apt und aptitude. Sie aktualisieren damit alle installierten Pakete auf die neueste, verfügbare Version. Dabei werden keine potentiell gefährlichen Aktionen ausgeführt. Was dies genau heißt, unterscheidet sich dezent bei den drei Werkzeugen:

  • apt-get upgrade ist am konservativsten und installiert weder neue Pakete, noch entfernt es ggf. nicht mehr benötigte Pakete. Dies kann gelegentlich dazu führen, dass nicht alle Sicherheitsaktualisierungen eingespielt werden, wenn diese beispielsweise zum Beheben eines Sicherheitsproblemes zusätzliche Pakete nachsichziehen. Eine solche Situation trat 2008 auf, als eine Sicherheitsaktualisierung für das Paket 'openssh-server' eine zusätzliche Abhängigkeit vom Paket 'openssh-blacklist' hatte. Letzteres beinhaltet eine schwarze Liste von öffentlich bekannten privaten SSH-Schlüsseln.

  • apt safe-upgrade läßt hingegen das Installieren neuer Pakete zu. Ähnlich wie apt-get entfernt es dabei keine Pakete.

  • aptitude safe-upgrade geht im Gegensatz zu apt-get und apt noch einen Schritt weiter und erlaubt auch, dass Pakete entfernt werden. Das betrifft allerdings ausschließlich solche Pakete, die die Markierung automatisch installiert'' tragen (siehe Paketflags'' in [lokale-paketmarkierungen]). Über die Option --no-new-installs sorgen Sie dafür, dass auch aptitude beim Aktualisieren nur die Pakete erneuert, die keine weiteren, zusätzlichen Pakete nachsichziehen.

Eine Paketversion wird nicht erneuert und auf dem aktuellen Stand belassen, wenn eine Paketaktualisierung einen weiteren Abhängigkeitskonflikt hervorruft. Das betrifft nur den Fall, wenn ein Paket entfernt werden soll. aptitude berücksichtigt dabei nur Pakete, die nicht automatisch über Abhängigkeiten installiert wurden.

Note
Überprüfung der Aktualisierung

Aufgrund der eingebauten Rückhaltemechanismen für potentielle Paketentfernungen werden diese Unterkommandos gerne für Sicherheitsaktualisierungen verwendet. Bitte überprüfen Sie nach deren Ausführung, ob auch alle Aktualisierungen tatsächlich eingespielt wurden. Sollte das nicht der Fall sein, schauen Sie nach, welche Pakete noch ausstehen und welche aufgetretenen Konflikte deren Aktualisierung verhindert haben.

Note
Übersicht zu den aktualisierbaren Paketen erhalten

Welche Pakete aktualisiert werden können, teilen Ihnen APT und aptitude mit. Ausführlicher gehen wir darauf unter [aktualisierbare-pakete-anzeigen] ein.

Sichtbar wird die Änderung auch im Paketnamen. Debian handhabt es so, dass bei Sicherheitsaktualisierungen (genannt 'security updates') dem Paketnamen die Zeichenkette ~deb7u1 für die erste Fehlerbereinigung für Debian 7 Wheezy angefügt wird. Die zweite Fehlerbereinigung erhält dann die Zeichenkette ~deb7u2 (siehe dazu auch [benennung-eines-debian-pakets]). Bei neuen Versionen mit Funktionserweiterungen wird die Versionsnummer des Pakets erhöht.

dist-upgrade und full-upgrade

Was bei apt-get das Unterkommando dist-upgrade ist, heißt bei apt und aptitude hingegen full-upgrade. Beide Unterkommandos sind ähnlich zu upgrade und safe-upgrade.

Sie kommen in zwei Situationen zum Einsatz. Fall eins umfasst das Einspielen von Sicherheitsaktualisierungen, sodass auch neue Abhängigkeiten oder Paketkonflikte Beachtung finden, ohne dass dabei auf die Aktualisierung verzichtet wird. Fall zwei ist der Wechsel von einer Veröffentlichung einer Distribution zur nachfolgenden, so bspw. von stable nach unstable oder von Debian 8 Jessie nach Debian 9 Stretch (siehe auch ``Distribution aktualisieren'' in [distribution-aktualisieren]).

Die bisherigen Veröffentlichungen von APT und aptitude suggerierten insbesondere bei dem Begriff dist-upgrade inkorrekterweise primär eine Aktualisierung der genutzten Veröffentlichung. Deshalb wurde diese Funktionalität zunächst bei aptitude und später auch bei APT von dist-upgrade in full-upgrade umbenannt. Damit soll klargestellt werden, dass dieses Unterkommando nicht nur zum Wechsel von einer Veröffentlichung zur nächsten (vulgo ``Distributions-Upgrade'') anwendbar ist.

In der Funktionalität bestehen kleine Unterschiede:

  • mit beiden Unterkommandos werden auch stets neue Pakete installiert, um die Paketabhängigkeiten zu erfüllen. Bei apt-get werden gegebenenfalls auch Pakete wieder entfernt, falls ein Paketkonflikt dies erforderlich macht.

  • In der Standardeinstellung von aptitude entfernt der Aufruf von aptitude full-upgrade nicht mehr gebrauchte, automatisch installierte Pakete. Dieses Verhalten können Sie in der Konfiguration von aptitude über das Element Aptitude::Delete-Unused abschalten.

Empfohlene Schrittfolge zur Aktualisierung von Paketen

Um Ihnen die Aktualisierung Ihrer Softwarezusammenstellung zu vereinfachen, haben wir nachfolgend eine Schrittfolge zusammengestellt, die Ihnen als Orientierung dienen kann. Sind Sie auf der Kommandozeile unterwegs, hilft Ihnen diese Abfolge bei den Werkzeugen apt-get, apt und aptitude weiter:

  1. Zunächst bringen Sie mittels apt-get update, apt update oder aptitude update die Paketlisten auf den neuesten Stand.

  2. Nun aktualisieren Sie mittels apt-get upgrade, apt upgrade oder aptitude safe-upgrade alle Pakete, die keine potentiell gefährlichen Paketoperationen zur Folge haben könnten.

  3. Als letzten Schritt führen Sie mit apt-get dist-upgrade, apt full-upgrade oder aptitude full-upgrade eine Erneuerung der Pakete durch, die bisher nicht erneuert wurden. Prüfen Sie bei der Frage "Y/n?" genau die vorgeschlagenen Paketoperationen.

Für das interaktive Arbeiten in der Text-Modus-Oberfläche von aptitude ist folgende Reihenfolge sinnvoll:

  1. Starten Sie zunächst aptitude mit der Option -u. Damit aktualisieren Sie zu Beginn die Paketlisten.

  2. Mit kbd:["["] öffnen Sie die Äste Aktualisierbare Pakete'' und Sicherheitsaktualisierungen'', um zu sehen, welche Pakete zur Aktualisierung anstehen.

  3. Mit kbd:[U] merken Sie alle aktualisierbaren Pakete vor.

  4. Eventuelle Konflikte lösen Sie, indem Sie z.B. den ersten Lösungsvorschlag mit kbd:[!] akzeptieren.

  5. Mit kbd:[g] sehen Sie die Vorschau der anstehenden Aktionen an.

  6. Drücken Sie nochmals kbd:[g], um die vorbereiteten Aktionen auszuführen.

Aktualisierung mit Synaptic

Über die graphische Oberfläche von Synaptic (siehe [gui-synaptic]) können Sie ebenfalls einzelne oder mehrere Pakete aktualisieren. Welche Aktualisierungen dabei berücksichtigt werden, legen Sie über die Einstellungen des Programms fest. Zu Auswahl stehen hier die Sicherheitsaktualisierungen und neue Paketversionen. Synaptic unterscheidet dabei nicht wie APT, apt und aptitude zwischen den verschiedenen Aktualisierungsstufen.

Folgende Schritte führen zu neuen Paketen über die graphische Oberfläche:

  1. Wählen Sie als erstes den Knopf menu:Status[Installiert (aktualisierbar)] aus.

  2. Danach selektieren Sie das gewünschte Paket aus der Liste.

  3. Über den Menüeintrag menu:Paket[Zum Aktualisieren vormerken] fügen Sie dieses zu ihrer Vorauswahl hinzu.

  4. Über den Menüpunkt menu:Bearbeiten[Vorgemerkte Änderungen anwenden] lösen Sie die Aktualisierung aus.

Ein Distributionswechsel ist nur über vorherige Änderung der Paketquellen möglich. Dabei ergänzen Sie zunächst eine weitere Paketquelle und beziehen danach die Aktualisierung (update).

results matching ""

    No results matching ""