Zeigt sudo apt list - aktualisierbar Kernel-Updates an?


10

Ich habe mich gefragt, ob

sudo apt list --upgradeable 

zeigt Kernel-Updates in der Liste oder nicht?


Kubuntu 16.04 64bit
Mazal

Warum sollte es nicht? Kernel-Pakete werden auf die gleiche Weise wie andere Pakete
aktualisiert

1
Beachten Sie, dass dies ohne ausgeführt werden apt listkann und sollte sudo.
Fkraiem

@fkraiem könntest du warum entwickeln? kann ⇏ sollte , wenn ja, aptsollte wahrscheinlich eine Warnung zurückgeben, wenn ohnesudo
Pablo Bianchi

Antworten:


8

Ja tut es. sudo apt-get updateWenn nach dem Ausführen ein Kernel-Update vorliegt, apt list --upgradeablesollten einige Pakete wie linux-headers-4.4.0-somethingund angezeigt werden linux-image-4.4.0-something.


Vielen Dank, und um sie tatsächlich zu aktualisieren, muss ich dist-upgrade verwenden, anstatt nur ein Upgrade durchzuführen. Ja? Oder hat sich das geändert? Aktualisiert jetzt auch nur Update-Kernel?
Mazal

Ich benutze immer, dist-upgradealso bin ich mir nicht ganz sicher. Aber ich glaube, dass Kernel-Updates verfügbar sind, weil linux-image-genericinstalliert ist. dist-upgradewird 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 upgradeund dist-upgradesollte funktionieren.
Thanos Apostolou

Das Ausführen von apt list --upgradeable zeigt zwar, dass ein Kernel-Update verfügbar ist, indem Metapakete aufgelistet werden (deren Namen beispielsweise linux-image-generickeine Versionsnummer enthalten), zeigt jedoch normalerweise keine Pakete mit Versionsnummern im Paketnamen an, z. B. linux-image-4.4.0-somethingweil 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.
Eliah Kagan

1

In der Ausgabe von werden normalerweise nur die aktualisierten Kernel- Metapakete angezeigt 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 --upgradeableist 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 .


Sie können sehen, was tatsächlich durch Ausführen getan wird 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 --upgradeabledie 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 upgradeohne es tatsächlich aptauszufü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 -proposedRepositorys 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 -securityoder sehen -updates.


1

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/historyund berechnen Werte für die Install:und Upgrade:Reihen. Die Kernel-Pakete werden dort in einer Install:Reihe platziert .


Dies ist korrekt, aber beachten Sie, dass es immer noch möglich ist zu wissen, dass ein neuer Kernel installiert wird, sudo apt upgradeindem 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.
Eliah Kagan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.