Warum muss apt-get nicht neu gestartet werden, wohingegen der Update Manager dies tut?

53

Oft versuche ich, den Update-Manager zu "schlagen", indem ich eine Konsole öffne und die Sequenz eingebe

sudo apt-get update
sudo apt-get upgrade

die nach meinem besten Wissen alle Pakete auf ihre neuesten stabilen Releases aktualisieren sollten. Soweit ich weiß, macht der Update-Manager dasselbe.

Der Update Manager erfordert jedoch manchmal (am häufigsten, wenn ein neuer Kernel verteilt wird) einen Neustart nach dem Beenden. apt-getNiemals, auch wenn es so aussieht, als würde ich den Kernel aktualisieren. Warum ist das so?


Als Antwort auf die doppelte Abstimmung: Ich frage nicht , welche Pakete einen Neustart erfordern, da die verknüpfte Frage lautet. Vielmehr frage ich, warum apt-get ich nicht zum Neustart aufgefordert werde, auch wenn ich ein zu aktualisierendes Paket erkenne, für das der Update Manager einen Neustart erfordern würde .

Jan
quelle
10
Es ist auch erwähnenswert, dass die Art von Updates, die von, apt-get dist-upgradeaber nicht von abgedeckt werden , apt-get updgradeeher diejenigen sind, die den Update Manager veranlasst hätten, einen Neustart vorzuschlagen.
Jon Hanna
4
FWIW können Sie überprüfen, ob ein Neustart erforderlich ist, indem Sie überprüfen, ob vorhanden /var/run/reboot-required. Außerdem zeigt Byobu bei Bedarf das Symbol "Update erforderlich" in der Statusleiste an.
Andrea Corbellini
2
@ Pilot6 Nicht einmal die Ferne schließt ein Duplikat zu sein. Die von Ihnen markierte Frage lautet, welche Pakete einen Neustart erfordern. Meine Frage lautet, warum mich eine Aktualisierungsmethode nicht zum Neustart auffordert, obwohl ich ein zu aktualisierendes Paket erkenne, für das ein Neustart erforderlich wäre.
Jan
1
OKAY. Aber es ist eng miteinander verbunden.
Pilot6
1
@ Pilot6 Das kann ich zustimmen;)
Jan

Antworten:

81

Weil apt-get(oder ganz einfach apt) für die Profis ist und wenn die Profis Folgendes tun:

sudo apt-get dist-upgrade

und wenn ein neuer Kernel installiert wird, wissen die Profis, dass sie neu starten müssen, um ihn zu aktivieren ...

Das automatische Update ist für alle anderen da draußen!

;-)

Alternativ können Sie jetzt Ubuntu Live-Kernel-Patches ab Version 16.04 installieren, mit denen Sie Ihren Kernel aktualisieren können, während Ihr Server ausgeführt wird.

Fabby
quelle
4
Ich wünschte, ich könnte alle drei Antworten akzeptieren, weil sie technisch alle dasselbe sagen. Aber ich denke , ich werde Sie , weil Sie mich am meisten gemacht grinsen ;-)
Jan
6
> :) Ein bisschen Humor in einer Antwort ist nie schlecht! ;-)
Fabby
4
Die Kernel-Livepatching-Unterstützung ist jetzt in den Mainstream-Kerneln verfügbar. Mit etwas Glück müssen wir also möglicherweise nicht mehr neu starten, sobald wir LTS 16.04 erreicht haben.
Kasperd
Ihre Beschreibung des apt-get upgradevs. apt-get dist-upgradeentspricht weder man apt-getmeiner Erfahrung mit dem Tool noch meiner. Ich bin mir ziemlich sicher, dass der Unterschied damit zusammenhängt, wie mit Abhängigkeiten umgegangen wird, bei denen Pakete installiert oder entfernt werden müssten. "upgrade" überspringt diese Pakete, "dist-upgrade" versucht, Pakete zu installieren / entfernen, um das Upgrade durchzuführen.
Derobert
1
@Fabby ist etwas verwirrt, da Sie diesen Absatz gerade entfernt haben. Wenn Sie sich jedoch die apt-get-Manpage ansehen, wird in der Beschreibung von "upgrade" beispielsweise angegeben, dass derzeit auf keinen Fall installierte Pakete entfernt oder Pakete, die noch nicht installiert wurden, abgerufen werden und installiert. " Wenn für ein normales App-Update ein neues Paket installiert werden muss (z. B. ein neuer Bibliotheks-Soname), wird dies nicht ausgeführt. Wenn ein Kernel-Update denselben Paketnamen verwendet, wird es ausgeführt.
Derobert
37

Update Manager schlägt vor, einen Neustart durchzuführen, wenn Kernel aktualisiert werden, oder einige andere Systempakete mit Diensten, die beim Upgrade für einen Neustart markiert sind.

In diesem Fall /var/run/reboot-requiredwird durch ein Paketinstallationsskript festgelegt.

Die Befehlszeile apt-get upgradeschlägt nichts vor, da sie sich an fortgeschrittene Benutzer richtet, die selbst entscheiden können, wann das System neu gestartet werden soll ;-)

Nach einem Upgrade mit apt-get Update Manager wird jedoch ein Neustart empfohlen.

Pilot6
quelle
Ich kann das nicht glauben, stimmt das? "Dienste, die nicht neu gestartet werden können, ohne das gesamte System neu zu starten."
AB
2
Ja, das stimmt. Wie "Emporkömmling" und einige andere. Nicht viele.
Pilot6
2
@ Pilot6 Hört sich lächerlich an, wenn ein Neustart ohne Neustart nicht möglich ist. Es sollte ein Upgrade von SysV init sein, das ohne Neustart neu gestartet werden kann.
Kasperd
@kasperd Das war nur ein Beispiel. Ich habe festgestellt, dass der Update Manager bei einigen Paketen, die nicht zum Kernel gehören, einen Neustart anfordert. Es muss eine Liste dieser Pakete geben. Ich bin nicht ganz sicher, ob Emporkömmling da ist.
Pilot6
1
@MaxNanasy Update Manager wird angezeigt und schlägt einen Neustart vor. es kann eine Weile dauern.
Pilot6
15

Wenn Sie einen neuen Kernel installieren, müssen Sie den Computer neu starten, damit die Änderungen wirksam werden.

Vorschlaghammer
quelle
1
Nicht nur Kernel-Updates. Sie müssen auch einige Dienste neu starten oder neu starten, wenn bestimmte andere Pakete aktualisiert werden. Wenn Sie versiert sind, können Sie häufig relevante Dienste neu starten und einen Neustart vermeiden. Andernfalls funktioniert ein Neustart immer. Es ist oft nicht einfach herauszufinden, welche Dienste neu gestartet werden müssen, da aktualisierte Pakete gemeinsam genutzte Bibliotheken enthalten können, von denen viele andere Softwareprodukte direkt oder indirekt über andere Softwareprodukte abhängen. Ich vertraue auch nicht unbedingt zu 100% darauf, dass der grafische Update-Manager es weiß.
Thomasrutter
7

apt-get benachrichtigt Sie nach der Installation eines bestimmten Pakets auf dem Terminal, wenn ein Neustart erforderlich ist.

update-manager ist eine All-in-One-Lösung, die alle Ihre Upgrade-Anforderungen selbst erledigt.

Ich ziehe apt-get vor, weiß nicht warum :)

121n3
quelle
2

apt-get upgrade aktualisiert den Kernel nicht.

apt-get dist-upgrade Aktualisiert den Kernel in Ubuntu.

Linux-Kernel-Versionen vor 4.1 müssen neu gestartet werden, wenn der Kernel aktualisiert wird.

Andere Pakete benötigen keinen Neustart, nur einen Neustart der Anwendung. Einige Windows-Anwendungen, die unter Wine ausgeführt werden, fordern einen Neustart an, geben jedoch einfach den folgenden Befehl ein:

wineserver -k

und starten Sie die Anwendung neu.

user222789
quelle