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 Abschnitt 2.10, „Veröffentlichungen“) 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 vier Unterkommandos zur Aktualisierung:
update
, verwendbar bei apt-get
, apt
und aptitude
,
install
, 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 genannte Unterkommando beinhaltet eine spezifische Aktualisierung
und wirkt sich entweder nur auf die Paketlisten (update
) oder auf die
Pakete selbst aus (install
, upgrade
, dist-upgrade
, safe-upgrade
und full-upgrade
).
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 Sie in der
Datei /etc/apt/sources.list
bzw. dem Verzeichnis in
/etc/apt/sources.list.d
hinterlegt haben. Ausführlich gehen wir darauf
unter „Liste der verfügbaren Pakete aktualisieren“ in
Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“ ein.
Mit diesem Unterkommando lösen Sie jedoch nicht die Aktualisierung der
Pakete selbst aus — hierbei helfen Ihnen install
, upgrade
,
dist-upgrade
, safe-upgrade
und full-upgrade
.
Bisher haben wir Ihnen nur verraten, dass das Unterkommando install
Pakete installiert. Es kann jedoch noch etwas mehr — nämlich das
Aktualisieren einer bestehenden Installation. Beim Aufruf prüfen apt
,
apt-get
und aptitude
zunächst, ob das Paket bereits installiert ist.
Falls nein, lösen Sie den üblichen Installationsvorgang aus. Falls das
Paket jedoch schon da ist, prüfen die genannten Programme, ob eine neue
Version des Paketes in den Paketlisten steht. Ist das der Fall, wird die
bestehende Version entfernt und die neue Version eingespielt. Dabei
werden sich verändernde Abhängigkeiten zu anderen Paketen mit
berücksichtigt.
Aktualisierung eines Paketes mittels apt-get install
.
# apt-get install ruby2.1 Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Die folgenden Pakete werden aktualisiert (Upgrade): ruby2.1 1 aktualisiert, 0 neu installiert, 0 zu entfernen und 235 nicht aktualisiert. Es müssen 277 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Holen: 1 http://security.debian.org/ jessie/updates/main ruby2.1 amd64 2.1.5-2+deb8u6 [277 kB] Es wurden 277 kB in 0 s geholt (354 kB/s). Laden der Fehlerberichte … Erledigt »Found/Fixed«-Informationen werden ausgewertet … Erledigt Lese Changelogs... Fertig (Lese Datenbank ... 257112 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../ruby2.1_2.1.5-2+deb8u6_amd64.deb ... Entpacken von ruby2.1 (2.1.5-2+deb8u6) über (2.1.5-2+deb8u5) ... Trigger für man-db (2.7.0.2-5) werden verarbeitet ... ruby2.1 (2.1.5-2+deb8u6) wird eingerichtet ... #
Bei diesem Schritt werden die zu installierenden Softwarepakete zunächst
im Paketcache unter /var/cache/apt/archives/
abgelegt. apt
prüft dabei,
ob für die heruntergeladenen Pakete auch genügend Speicherplatz zur
Verfügung steht. Ist das nicht der Fall, beschwert es sich bei Ihnen mit
nachfolgender Ausgabe:
Fehlender Speicherplatz für den Paketcache.
1734 aktualisiert, 716 neu installiert, 29 zu entfernen und 0 nicht aktualisiert. Es müssen 3.292 MB an Archiven heruntergeladen werden. Nach dieser Operation werden 3.195 MB Plattenplatz zusätzlich benutzt. E: Sie haben nicht genug Platz in /var/cache/apt/archives/.
Um die Situation zu bereinigen, räumen Sie vor der Aktualisierung der Pakete den Paketcache auf (siehe „Paketcache aufräumen“ in Abschnitt 7.5, „Paketcache aufräumen“).
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
Abschnitt 2.15, „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.
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.
Welche Pakete aktualisiert werden können, teilen Ihnen APT und
aptitude
mit. Ausführlicher gehen wir darauf unter „Aktualisierbare
Pakete anzeigen“ in Abschnitt 8.12, „Aktualisierbare Pakete anzeigen“ ein.
Sichtbar wird die Änderung auch im Paketnamen. Debian handhabt es so,
dass bei Sicherheitsaktualisierungen (genannt security updates) dem
Paketnamen eine spezielle Zeichenkette angefügt wird. Die erste
Fehlerbereinigung für Debian 12 Bookwork ist +deb12u1
, die zweite
+deb12u2
(siehe dazu auch „Bennenung eines Debian-Paketes“ unter
Abschnitt 2.11, „Benennung einer Paketdatei“).
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 Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“).
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:
apt-get
werden
gegebenenfalls auch Pakete wieder entfernt, falls ein Paketkonflikt dies
erforderlich macht.
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.
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:
apt-get update
, apt update
oder
aptitude update
die Paketlisten auf den neuesten Stand.
apt-get upgrade
, apt upgrade
oder
aptitude safe-upgrade
alle Pakete, die keine potentiell gefährlichen
Paketoperationen zur Folge haben könnten.
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:
aptitude
mit der Option -u
. Damit
aktualisieren Sie zu Beginn die Paketlisten.
Über die graphische Oberfläche von Synaptic (siehe Abschnitt 6.4.1, „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:
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
).