Ich habe mich gefragt, ob
sudo apt list --upgradeable
zeigt Kernel-Updates in der Liste oder nicht?
apt list
kann und sollte sudo
.
apt
sollte wahrscheinlich eine Warnung zurückgeben, wenn ohnesudo
Ich habe mich gefragt, ob
sudo apt list --upgradeable
zeigt Kernel-Updates in der Liste oder nicht?
apt list
kann und sollte sudo
.
apt
sollte wahrscheinlich eine Warnung zurückgeben, wenn ohnesudo
Antworten:
Ja tut es. sudo apt-get update
Wenn nach dem Ausführen ein Kernel-Update vorliegt, apt list --upgradeable
sollten einige Pakete wie linux-headers-4.4.0-something
und angezeigt werden linux-image-4.4.0-something
.
dist-upgrade
also bin ich mir nicht ganz sicher. Aber ich glaube, dass Kernel-Updates verfügbar sind, weil linux-image-generic
installiert ist. dist-upgrade
wird zum Auflösen von Abhängigkeiten verwendet, sodass es wahrscheinlich nur dann von Bedeutung ist, wenn das Kernel-Upgrade etwas entfernen muss, das bereits installiert ist (möglicherweise weiß ich es nicht, wenn 16.04.1 veröffentlicht wird). Für typische Fehlerkorrekturen, die kanonisch veröffentlicht werden, glaube ich, dass beides upgrade
und dist-upgrade
sollte funktionieren.
linux-image-generic
keine Versionsnummer enthalten), zeigt jedoch normalerweise keine Pakete mit Versionsnummern im Paketnamen an, z. B. linux-image-4.4.0-something
weil Diese Pakete sind noch nicht einmal installiert. Durch das Aktualisieren eines installierten Kernel-Metapakets wird es abgerufen, indem es als neue Abhängigkeit deklariert wird.
apt list --upgradeable
.Fast alle Kernel-Updates werden als neue Pakete und nicht als neue Versionen vorhandener Pakete bereitgestellt, sodass Sie Ihre alten Kernel für eine Weile behalten können, falls das Update etwas kaputt macht und Sie das System mit einem älteren Kernel starten müssen. Dies sind die Pakete, deren Namen Versionsnummern enthalten, wie z linux-image-4.15.0-60-generic
.
Damit Sie solche Paketaktualisierungen erhalten, gibt es Kernel-Metapakete, die nur dazu dienen, die Pakete, die den Kernel tatsächlich bereitstellen, als Abhängigkeiten zu deklarieren. Wenn neue Kernel-Pakete veröffentlicht werden, werden die Metapakete selbst aktualisiert, um davon abhängig zu sein.
Diese Metapakete werden in der Ausgabe von als aktualisierbar angezeigt. Dies apt list --upgradeable
ist korrekt, da Sie sie bereits installiert haben und eine neue Version verfügbar ist. Die neuen Pakete sind hier nicht aufgeführt, da Sie sie noch nicht haben. Wie pbojczuk feststellte , werden diese Pakete nicht aktualisiert , sondern installiert .
Es ist möglich, dass diese Pakete in der Ausgabe von erscheinen apt list --upgradeable
, aber selten. Dies kann passieren, wenn ein Update veröffentlicht wird, um ein Problem zu beheben, das den Kernel selbst nicht ändert. Wenn beispielsweise ein Fehler in den Installations- oder Entfernungsskripten für ein Paket aufgetreten ist, das Kerneldateien bereitstellt, wird die Korrektur für diesen Fehler wahrscheinlich als Update für dieses Paket bereitgestellt, nicht als separates Kernelpaket mit einer Version im Namen .
apt -s upgrade
.Nach dem Ausführen sudo apt update
, um Informationen darüber abzurufen, welche Pakete von wo und in welchen Versionen verfügbar sind, werden beim Ausführen apt list --upgradeable
die Metapakete aufgelistet, nicht jedoch die Pakete, die den neuen Kernel und die zugehörigen Dateien tatsächlich bereitstellen:
ek@Kip:~$ apt list --upgradeable
Listing... Done
linux-generic/bionic-proposed 4.15.0.60.62 i386 [upgradable from: 4.15.0.59.61]
linux-headers-generic/bionic-proposed 4.15.0.60.62 i386 [upgradable from: 4.15.0.59.61]
linux-image-generic/bionic-proposed 4.15.0.60.62 i386 [upgradable from: 4.15.0.59.61]
linux-libc-dev/bionic-proposed 4.15.0-60.67 i386 [upgradable from: 4.15.0-59.66]
Wenn Sie alles sehen möchten, was durch Ausführen installiert werden würde, sudo apt upgrade
ohne es tatsächlich apt
auszuführen , können Sie eine Simulation ausführen, indem Sie Folgendes verwenden apt -s upgrade
:
ek@Kip:~$ apt -s upgrade
NOTE: This is only a simulation!
apt needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-4.15.0-60 linux-headers-4.15.0-60-generic linux-image-4.15.0-60-generic
linux-modules-4.15.0-60-generic linux-modules-extra-4.15.0-60-generic
The following packages will be upgraded:
linux-generic linux-headers-generic linux-image-generic linux-libc-dev
4 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Inst linux-modules-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-image-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-modules-extra-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-generic [4.15.0.59.61] (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386]) []
Inst linux-image-generic [4.15.0.59.61] (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386]) []
Inst linux-headers-4.15.0-60 (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [all]) []
Inst linux-headers-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386]) []
Inst linux-headers-generic [4.15.0.59.61] (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-libc-dev [4.15.0-59.66] (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-modules-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-image-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-modules-extra-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-generic (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-image-generic (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-headers-4.15.0-60 (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [all])
Conf linux-headers-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-headers-generic (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-libc-dev (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Dies ist nicht die einzige Möglichkeit, dies zu tun. Wenn Sie jedoch vor der Durchführung herausfinden möchten, was ein Upgrade bewirken wird, empfehle ich dies. Die Ausgabe ist normalerweise sehr einfach zu verstehen, und da sie möglicherweise andere unerwartete Auswirkungen des geplanten Upgrades aufzeigt.
Die Ausgabe, die ich gezeigt habe, stammt von einem Computer, auf dem die -proposed
Repositorys aktiviert sind und auf dem neue Kernel installiert werden. (Beachten Sie, dass dies auf Produktionsmaschinen normalerweise keine gute Idee ist, da diese Kernel unter Ubuntu noch nicht vollständig getestet wurden.) Sie werden jedoch eine ähnliche Ausgabe mit vollständig stabilen Kernel-Paketen in -security
oder sehen -updates
.
Eigentlich sehe ich keine Kernel-Pakete über apt list --upgradable
. Vergleichen Sie:
apt list --upgradable | wc -l
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
141
Gegen:
apt --recon upgrade | grep ^Inst | wc -l
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
145
Und dieser Wert wird passend zu dem Upgrade - Ergebnis , wenn ich die Log prüfen /var/log/apt/history
und berechnen Werte für die Install:
und Upgrade:
Reihen. Die Kernel-Pakete werden dort in einer Install:
Reihe platziert .
sudo apt upgrade
indem Sie die Ausgabe von überprüfen apt list --upgradeable
. Die Pakete, die tatsächlich neue Kernel bereitstellen (wie genannt linux-image-4.15.0-60-generic
), werden in der Ausgabe von nicht angezeigt apt --list upgradeable
(außer in einigen seltsamen Situationen), da sie, wie Sie sagen, neu installiert und nicht aktualisiert werden. Die Kernel - Metapakete (benannt wie jedoch linux-image-generic
) , die dies durch je nach dann neuer Kernel passiert verursachen werden aufgeführt.