Perché apt-get non richiede il riavvio, come fa il gestore aggiornamenti?


53

Spesso cerco di "battere" il gestore aggiornamenti aprendo una console ed inserendo la sequenza

sudo apt-get update
sudo apt-get upgrade

che, per quanto ne so, dovrebbe aggiornare tutti i pacchetti alle loro ultime versioni stabili. Il gestore aggiornamenti fa lo stesso, per quanto ne so.

Tuttavia, il gestore degli aggiornamenti a volte (più frequentemente quando viene distribuito un nuovo kernel) richiede un riavvio al termine. apt-getmai, anche quando sembra che stia aggiornando il kernel. Perché è così?


In risposta alla votazione duplicato: Io non chiedo quali pacchetti richiedono un riavvio, come la questione collegata è. Piuttosto mi chiedo il motivo per cui apt-get non mi chiederà di riavviare anche quando riconosco un pacchetto in fase di aggiornamento che il gestore aggiornamenti sarebbe richiedere un riavvio per.


10
vale anche la pena notare che il tipo di aggiornamenti che sono coperti apt-get dist-upgradema non da apt-get updgradeè più probabile che siano quelli che avrebbero indotto il gestore aggiornamenti a suggerire un riavvio.
Jon Hanna,

4
FWIW, è possibile verificare se è necessario il riavvio verificando l'esistenza di /var/run/reboot-required. Inoltre, Byobu mostra un'icona "aggiornamento richiesto" nella barra di stato quando necessario.
Andrea Corbellini,

2
@ Pilot6 Nemmeno lontanamente vicino a essere un duplicato. La domanda che hai posto è quella di chiedere quali pacchetti richiedono un riavvio. La mia domanda è: perché un metodo di aggiornamento non mi chiede di riavviare anche se riconosco un pacchetto in fase di aggiornamento che richiederebbe il riavvio.
Jan

1
OK. Ma è strettamente correlato.
Pilota 6

1
@ Pilot6 Che posso essere d'accordo;)
gennaio

Risposte:


81

Perché apt-get(o semplicemente semplice apt) è per i professionisti e quando i professionisti fanno un:

sudo apt-get dist-upgrade

e vedere che sta installando un nuovo kernel, i professionisti sanno che devono riavviare per attivarlo ...

L'aggiornamento automatico è per tutti gli altri là fuori!

;-)

In alternativa, ora è possibile installare Patching del kernel di Ubuntu Live dalla versione 16.04 in poi, che consente di aggiornare il kernel mentre il server è in esecuzione.


4
Vorrei poter accettare tutte e tre le risposte perché tecnicamente dicono tutte la stessa cosa. Ma penso che prenderò il tuo perché mi hai fatto sorridere di più ;-)
gennaio

6
> :) Un po 'di umorismo in una risposta non è mai male! ;-)
Fabby,

4
Il supporto per il livepatching del kernel è ora nei kernel mainstream, quindi con un po 'di fortuna potremmo non dover più riavviare una volta arrivati ​​a LTS 16.04.
Kasperd,

La tua descrizione del apt-get upgradevs. apt-get dist-upgradenon corrisponde man apt-getné alla mia esperienza sull'uso dello strumento. Sono abbastanza sicuro che la differenza abbia a che fare con la gestione delle dipendenze che richiederebbero l'installazione o la rimozione dei pacchetti; "upgrade" salta quei pacchetti, "dist-upgrade" tenta di installare / rimuovere i pacchetti per consentire l'aggiornamento.
derobert

1
@Fabby è un po 'confuso dal momento che hai rimosso quel paragrafo, ma se guardi la pagina man di apt-get, la descrizione di "upgrade" dice ad es. "In nessun caso i pacchetti attualmente installati vengono rimossi, oppure i pacchetti non già installati recuperati e installato. ". Pertanto, se un normale aggiornamento dell'app richiede l'installazione di un nuovo pacchetto (ad esempio un nuovo soname di libreria), non verrà eseguito. O se un aggiornamento del kernel usasse lo stesso nome di pacchetto, sarebbe fatto.
derobert

37

Il gestore aggiornamenti suggerisce di riavviare quando i kernel vengono aggiornati o alcuni altri pacchetti di sistema con servizi che sono contrassegnati per il riavvio quando vengono aggiornati.

In questo caso /var/run/reboot-requiredè impostato da uno script di installazione del pacchetto.

La riga di comando apt-get upgradenon suggerisce nulla, perché è indirizzata a utenti più esperti che possono decidere da soli quando riavviare il sistema ;-)

Ma dopo l'aggiornamento usando apt-get Update Manager tra poco suggerirà di riavviare.


Non ci posso credere, è vero? "servizi che non possono essere riavviati senza riavviare l'intero sistema."
AB

2
Si è vero. Come "upstart" e alcuni altri. Non molti.
Pilota

2
@ Pilot6 Sembra ridicolo se upstart non può essere riavviato senza un riavvio. Doveva essere un aggiornamento da SysV init che può essere riavviato senza riavviare.
Kasperd,

@kasperd Quello era solo un esempio. Ho notato che Update Manager richiede il riavvio di alcuni pacchetti non kernel. Ci deve essere un elenco di questi pacchetti. Non sono del tutto sicuro che ci sia.
Pilota 6

1
Il gestore aggiornamenti @MaxNanasy si aprirà e suggerirà di riavviare. potrebbe succedere tra un po '.
Pilota 6

15

Quando si installa un nuovo kernel, è necessario riavviare la macchina affinché le modifiche abbiano effetto, apt-get non si preoccupa.


1
Non solo aggiornamenti del kernel. È inoltre necessario riavviare o riavviare alcuni servizi quando vengono aggiornati determinati altri pacchetti. Se sei esperto puoi spesso riavviare i servizi pertinenti ed evitare un riavvio. In caso contrario, il riavvio funzionerà sempre. Spesso non è semplice capire quali servizi necessitano di un riavvio, perché i pacchetti aggiornati potrebbero coinvolgere librerie condivise dalle quali molti altri software dipendono direttamente o indirettamente tramite altri software. Nemmeno io mi fido del 100% che il gestore degli aggiornamenti grafico lo sappia.
thomasrutter,

7

apt-get in realtà ti avvisa sul terminale dopo l'installazione di un determinato pacchetto, se richiede il riavvio.

update-manager è un tipo di soluzione all-in-one che si occupa da solo di tutte le esigenze di aggiornamento.

Preferisco apt-get, non so perché :)


2

apt-get upgrade non aggiorna il kernel.

apt-get dist-upgrade aggiorna il kernel in Ubuntu.

Le versioni del kernel Linux precedenti alla 4.1 richiedono il riavvio quando il kernel viene aggiornato.

Altri pacchetti non necessitano di un riavvio, ma solo di un riavvio dell'applicazione stessa. Alcune applicazioni Windows in esecuzione su Wine richiedono il riavvio, ma basta digitare il comando:

wineserver -k

e riavvia l'applicazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.