¿Por qué apt-get no requiere reinicios, donde el administrador de actualizaciones sí?

53

A menudo trato de "vencer" al administrador de actualizaciones abriendo una consola e ingresando la secuencia

sudo apt-get update
sudo apt-get upgrade

que, que yo sepa, debería actualizar todos los paquetes a sus versiones estables más recientes. El administrador de actualizaciones hace lo mismo, que yo sepa.

Sin embargo, el administrador de actualizaciones a veces (con mayor frecuencia cuando se distribuye un nuevo núcleo) requiere un reinicio después de finalizar. apt-getnunca lo hace, incluso cuando parece que estoy actualizando el kernel. ¿Por qué esto es tan?


En respuesta a la votación duplicado: estoy no preguntando qué paquetes requiere un reinicio como la cuestión es ligado. Más bien estoy pidiendo por qué apt-get no me pide que reinicie aun cuando reconozco un paquete que se actualiza el gestor de actualizaciones podría requerir un reinicio para.

ene
fuente
10
También vale la pena señalar que el tipo de actualizaciones que están cubiertas apt-get dist-upgradepero que no están cubiertas apt-get updgradees más probable que sean las que hubieran provocado que el administrador de actualizaciones sugiriera un reinicio.
Jon Hanna
44
FWIW, puede verificar si se requiere reiniciar comprobando la existencia de /var/run/reboot-required. Además, Byobu muestra un icono de "actualización requerida" en la barra de estado cuando es necesario.
Andrea Corbellini
2
@ Pilot6 Ni siquiera remotamente cerca de ser un duplicado. La pregunta que marcó es preguntar qué paquetes requieren un reinicio. Mi pregunta es por qué un método de actualización no me pide que reinicie aunque reconozco que se está actualizando un paquete que requeriría reiniciar.
Jan
1
OKAY. Pero está estrechamente relacionado.
Pilot6
1
@ Pilot6 que puedo aceptar;)
Jan

Respuestas:

81

Porque apt-get(o simplemente simple apt) es para los profesionales y cuando los profesionales hacen un:

sudo apt-get dist-upgrade

y cuando se instala un nuevo kernel, los profesionales saben que tienen que reiniciar para activarlo ...

¡La actualización automática es para todos los demás!

;-)

Alternativamente, ahora puede instalar Ubuntu Live kernel Patching desde la versión 16.04 en adelante, lo que le permite actualizar su kernel mientras su servidor está funcionando.

Fabby
fuente
44
Desearía poder aceptar las tres respuestas porque técnicamente todas dicen lo mismo. Pero creo que tomaré el tuyo porque me hiciste sonreír más ;-)
Jan
66
> :) ¡Un poco de humor en una respuesta nunca es malo! ;-)
Fabby
44
El soporte de kernel livepatching ahora está en los núcleos principales, por lo que con un poco de suerte no tendremos que reiniciar más una vez que lleguemos a LTS 16.04.
kasperd
Su descripción de la apt-get upgradecomparación apt-get dist-upgradeno coincide man apt-getni mi experiencia con la herramienta. Estoy bastante seguro de que la diferencia tiene que ver con cómo se manejan las dependencias que requerirían instalar o eliminar paquetes; "actualizar" omite esos paquetes, "dist-upgrade" intenta instalar / eliminar paquetes para que la actualización suceda.
derobert
1
@Fabby algo confundido ya que actualmente ha eliminado ese párrafo, pero si mira la página de manual de apt-get, la descripción de "actualización" dice, por ejemplo, "bajo ninguna circunstancia se eliminan los paquetes instalados actualmente, o los paquetes que aún no están instalados recuperados e instalado ". Entonces, si una actualización normal de la aplicación requiere la instalación de un nuevo paquete (nuevo nombre de la biblioteca, por ejemplo), no se realizará. O si una actualización del kernel usara el mismo nombre de paquete, se haría.
derobert
37

El administrador de actualizaciones sugiere reiniciar cuando se actualizan los núcleos o algunos otros paquetes del sistema con servicios que están marcados para reiniciar cuando se actualizan.

En este caso, /var/run/reboot-requiredse establece mediante un script de instalación del paquete.

La línea de comando apt-get upgradeno sugiere nada, porque está dirigida a usuarios más avanzados que pueden decidir por sí mismos cuándo reiniciar el sistema ;-)

Pero después de actualizar usando apt-get Update Manager por un tiempo, sugerirá reiniciar también.

Piloto6
fuente
No puedo creer eso, ¿es cierto? "servicios que no se pueden reiniciar sin reiniciar todo el sistema".
AB
2
Sí, es cierto. Como "advenedizo" y algunos otros. No muchos.
Pilot6
2
@ Pilot6 Suena ridículo si el arranque no puede reiniciarse sin reiniciar. Se suponía que era una actualización de SysV init que se puede reiniciar sin reiniciar.
kasperd
@kasperd Eso fue solo un ejemplo. Noté que Update Manager solicita reiniciar en algunos paquetes que no son del núcleo. Debe haber alguna lista de estos paquetes. No estoy muy seguro de que haya un advenedizo.
Piloto6
1
El administrador de actualizaciones @MaxNanasy aparecerá y sugerirá reiniciar. Puede suceder en un momento.
Pilot6
15

Cuando instala un nuevo kernel, debe reiniciar la máquina para que los cambios surtan efecto, apt-get simplemente no molesta.

Trineo martillo
fuente
1
No solo las actualizaciones del kernel. También debe reiniciar o reiniciar algunos servicios cuando se actualizan otros paquetes. Si eres experto, a menudo puedes reiniciar los servicios relevantes y evitar un reinicio. Si no es así, un reinicio siempre funcionará. A menudo no es sencillo determinar qué servicios necesitan reiniciarse, porque los paquetes actualizados pueden involucrar bibliotecas compartidas de las que depende mucho otro software, directa o indirectamente a través de otro software. Tampoco confío necesariamente al 100% en el administrador de actualizaciones gráficas.
thomasrutter
7

apt-get realmente te notifica en la terminal cuando después de instalar un paquete determinado, si requiere reiniciar.

update-manager es un tipo de solución todo en uno que se encarga de todas sus necesidades de actualización por sí mismo.

Sin embargo, prefiero apt-get, no sé por qué :)

121n3
fuente
2

apt-get upgrade no actualiza el kernel.

apt-get dist-upgrade actualiza el kernel en Ubuntu.

Las versiones del kernel de Linux anteriores a 4.1 necesitan reiniciarse cuando se actualiza el kernel.

Otros paquetes no necesitan reiniciar, solo reiniciar la aplicación. Algunas aplicaciones de Windows que se ejecutan en Wine solicitan un reinicio pero simplemente escriben el comando:

wineserver -k

y reinicie la aplicación.

usuario222789
fuente