Pourquoi apt-get ne nécessite-t-il pas de redémarrage, contrairement au gestionnaire de mise à jour?

53

Souvent, j'essaie de «battre» le gestionnaire de mises à jour en ouvrant une console et en entrant la séquence

sudo apt-get update
sudo apt-get upgrade

qui, à ma connaissance, devraient mettre à jour tous les paquetages avec leurs dernières versions stables. Le gestionnaire de mise à jour fait la même chose, à ma connaissance.

Cependant, le gestionnaire de mise à jour (parfois le plus souvent lorsqu'un nouveau noyau est distribué) nécessite un redémarrage après la fin. apt-getne le fait jamais, même s'il semble que je mette à niveau le noyau. Pourquoi cela est-il ainsi?


En réponse au vote en double: je ne demande pas quels paquetages nécessitent un redémarrage, comme c'est le cas pour la question liée. Je demande plutôt pourquoi je apt-getne demande pas de redémarrer, même si je reconnais un package en cours de mise à jour pour lequel le gestionnaire de mise à jour aurait besoin d'un redémarrage.

Jan
la source
10
Il convient également de noter que les types de mises à jour couverts par, apt-get dist-upgrademais non par, apt-get updgradesont plus susceptibles d'être ceux qui auraient amené le gestionnaire de mises à jour à suggérer un redémarrage.
Jon Hanna
4
FWIW, vous pouvez vérifier si le redémarrage est requis en vérifiant l'existence de /var/run/reboot-required. En outre, Byobu affiche une icône "mise à jour requise" dans la barre d'état si nécessaire.
Andrea Corbellini
2
@ Pilot6 Pas même à distance d'être un doublon. La question que vous avez cochée demande quels paquets nécessitent un redémarrage. Ma question demande pourquoi une méthode de mise à jour ne me demande pas de redémarrer alors que je reconnais un paquet mis à jour qui nécessiterait un redémarrage.
Jan
1
D'ACCORD. Mais c'est étroitement lié.
Pilot6
1
@ Pilot6 que je peux accepter;)
Jan

Réponses:

81

Parce que apt-get(ou simplement simple apt) est pour les pros et quand les pros font un:

sudo apt-get dist-upgrade

et voyez un nouveau noyau en cours d'installation, les professionnels savent qu'ils doivent redémarrer pour l'activer ...

La mise à jour automatique est pour tout le monde!

;-)

Vous pouvez également installer Ubuntu Live Kernel Patching à partir de la version 16.04, ce qui vous permet de mettre à jour votre noyau pendant l’exécution de votre serveur.

Fabby
la source
4
J'aimerais pouvoir accepter les trois réponses, car techniquement, elles disent toutes la même chose. Mais je pense que je prendrai le tien parce que tu m'as fait sourire le plus ;-)
janvier
6
> :) Un peu d'humour dans une réponse n'est jamais mauvais! ;-)
Fabby
4
Le support de livepatching du noyau est maintenant inclus dans les noyaux traditionnels, donc avec un peu de chance, nous n'aurons peut-être plus besoin de redémarrer une fois que nous aurons atteint la version 16.04 de LTS.
Kasperd
Votre description du apt-get upgraderapport apt-get dist-upgradene correspond ni man apt-getni mon expérience en utilisant l'outil. Je suis à peu près sûr que la différence concerne la gestion des dépendances nécessitant l'installation ou la suppression de packages; "upgrade" ignore ces paquets, "dist-upgrade" tente d'installer / de supprimer des paquets pour que la mise à niveau se produise.
Derobert
1
@Fabby est quelque peu confus alors que vous avez actuellement supprimé ce paragraphe, mais si vous consultez la page de manuel d'apt-get, la description de "upgrade" indique par exemple que "les packages actuellement installés ne sont en aucun cas supprimés, ou les packages non encore installés récupérés et installé. ". Donc, si une mise à jour d'application normale nécessite l'installation d'un nouveau package (nouvelle bibliothèque Soname, par exemple), cela ne sera pas fait. Ou si une mise à jour du noyau utilisait le même nom de package, cela serait fait.
derobert
37

Le gestionnaire de mise à jour suggère de redémarrer lorsque les noyaux sont mis à niveau ou certains autres packages système avec des services qui sont marqués pour redémarrer lors de la mise à niveau.

Dans ce cas, /var/run/reboot-requiredest défini par un script d'installation de package.

La ligne de commande apt-get upgradene suggère rien car elle est destinée aux utilisateurs plus avancés qui peuvent décider eux-mêmes quand redémarrer le système ;-)

Mais après la mise à niveau, utilisez apt-get Update Manager dans un moment, suggérera de redémarrer également.

Pilote6
la source
Je ne peux pas y croire, est-ce vrai? "services qui ne peuvent pas être redémarrés sans redémarrer l’ensemble du système."
AB
2
Oui c'est vrai. Comme "upstart" et quelques autres. Pas beaucoup.
Pilot6
2
@ Pilot6 Cela semble ridicule si le redémarrage ne peut pas être redémarré sans redémarrage. Il était supposé être une mise à niveau de SysV init pouvant être redémarrée sans redémarrage.
Kasperd
@ Kasperd Ce n'était qu'un exemple. J'ai remarqué que le gestionnaire de mise à jour demande le redémarrage de certains packages non-noyau. Il doit y avoir une liste de ces paquets. Je ne suis pas tout à fait sûr que le débutant est là.
Pilot6
1
Le gestionnaire de mise à jour @MaxNanasy affiche une fenêtre et suggère de redémarrer. cela peut arriver dans un moment.
Pilot6
15

Lorsque vous installez un nouveau noyau, vous devez redémarrer la machine pour que les modifications prennent effet, apt-get ne s'en mêle pas.

Marteau de forgeron
la source
1
Pas seulement les mises à jour du noyau. Vous devez également redémarrer ou redémarrer certains services lorsque certains autres packages sont mis à niveau. Si vous êtes averti, vous pouvez souvent redémarrer les services pertinents et éviter un redémarrage. Si vous ne l'êtes pas, un redémarrage fonctionnera toujours. Il est souvent difficile de déterminer quels services nécessitent un redémarrage, car les packages mis à niveau peuvent impliquer des bibliothèques partagées dont beaucoup d'autres logiciels dépendent directement ou indirectement via d'autres logiciels. Je ne fais pas forcément confiance à 100% au gestionnaire de mise à jour graphique.
thomasrutter
7

En fait, apt-get vous avertit sur le terminal après l’installation d’un certain paquet, s’il faut redémarrer.

update-manager est un type de solution tout-en-un qui prend en charge tous vos besoins de mise à niveau.

Je préfère cependant apt-get, je ne sais pas pourquoi :)

121n3
la source
2

apt-get upgrade ne met pas à jour le noyau.

apt-get dist-upgrade met à jour le noyau dans Ubuntu.

Les versions de noyau Linux antérieures à 4.1 nécessitent un redémarrage lorsque le noyau est mis à jour.

Les autres packages ne nécessitent pas de redémarrage, mais simplement un redémarrage de l'application elle-même. Certaines applications Windows exécutées sur Wine demandent un redémarrage mais il suffit de taper la commande suivante:

wineserver -k

et redémarrez l'application.

utilisateur222789
la source