Welche Logik steckt hinter der Zurückhaltung von Kernelpaketen?

Welche Logik steckt hinter der Zurückhaltung von Kernelpaketen?

Ich hoffe, dass jemand mit etwas mehr Wissen etwas zur Vorgehensweise apt-get upgradein Ubuntu 16.04 und höher erklären kann.

Das Verhalten, das ich beobachte, ist, dass apt-get upgrademanchmal keine neuen Kernel-Pakete installiert werden und manchmal:

d. h. aus der Ausgabe:

The following packages have been kept back:
linux-generic linux-headers-generic linux-image-generic linux-tools-generic

ICHTunIch weiß, dass dist-upgradediese Pakete installiert werden, wenn ich ein ausführe (also wiederhole diese Antwort nicht :-). Was ich nicht weiß, ist, was die Zurückhaltung dieser Pakete steuert.
Manchmal werden bei einem ein neue Kernel installiert apt-get upgradeund manchmal werden die Pakete zurückgehalten.

Werden diese Sperren von Canonical selbst vorgenommen oder hängen sie mit Abhängigkeiten von anderen Paketen zusammen?

Antwort1

Der apt-get upgradeBefehl aktualisiert Pakete nur auf die neuere Version; er installiert kein neues Paket und entfernt auch keines, um ein Paket zu aktualisieren.

Wenn Sie Ihren Kernel aktualisieren, installieren Sie eigentlich einen neuen Kernel. Ubuntu aktualisiert den Kernel nicht, sondern installiert einen neuen, während der alte erhalten bleibt.

Aber warum? Warum installieren wir eine neue Version des Kernels, anstatt ihn auf die letzte Version zu aktualisieren? Die Antwort lautet: aus Stabilitätsgründen.

Man weiß nie, was nach einem Kernel-Upgrade passiert. Vielleicht kann das System nicht mehr gestartet werden oder die Hardware funktioniert nicht mehr richtig. Sie sollten immer die alte Version behalten, damit Sie im Problemfall immer noch eine funktionierende Maschine haben.

Aktualisieren Sie niemals Ihren funktionierenden Kernel.

Sagt SlackwareAnleitung zum Systemupgrade.


Mehr Info

man apt-get:

Unter keinen Umständen werden aktuell installierte Pakete entfernt oder noch nicht installierte Pakete abgerufen und installiert. Neue Versionen aktuell installierter Pakete, die nicht aktualisiert werden können, ohne den Installationsstatus eines anderen Pakets zu ändern, bleiben in ihrer aktuellen Version.

Wie Sie jedoch wissen, können Sie diese „zurückgehaltenen“ Pakete auch verwenden apt-get dist-upgradeoder installieren.apt upgrade

$ apt-cache search linux-image-4.4.*-generic | tail -3
linux-image-4.4.0-75-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-77-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP
linux-image-4.4.0-78-generic - Linux kernel image for version 4.4.0 on 64 bit x86 SMP

sehen Sie? Dies sind unterschiedliche Pakete, daher eine Neuinstallation statt eines Upgrades.

verwandte Informationen