Posso eseguire un aggiornamento di versione silenzioso o non presidiato?


31

Come si aggiorna a una nuova versione di Ubuntu senza dover reagire alle istruzioni?

Sono su 12.04 ora e vorrei installare 12.10. Quando avvio l'aggiornamento, di solito scarica roba, quindi fa una domanda, si installa un po ', fa una domanda, ecc. Lo lascio dall'oggi al domani e qualche volta scopro che non ha fatto quasi alcun progresso nell'aggiornamento. Vorrei solo dare il via al processo, andare via e farlo finire dopo un paio d'ore. Sto bene aggiornando automaticamente i file di configurazione in / etc e così via. Quindi, come avviare un aggiornamento automatico?

Risposte:


42

Il seguente comando si aggiorna alla nuova versione stabile senza prompt:

do-release-upgrade -f DistUpgradeViewNonInteractive

Il seguente comando si aggiorna alla versione di sviluppo corrente senza prompt:

do-release-upgrade -d -f DistUpgradeViewNonInteractive

Non l'ho provato, ma sembra che esegua l'azione predefinita solo quando sorge una domanda. Inoltre scade qualsiasi script se si blocca troppo a lungo.

Potrebbe essere necessario utilizzarlo in dpkg-reconfigureseguito se non si è soddisfatti della configurazione di determinati pacchetti, ma il più delle volte si dovrebbe essere a posto.

Fonte: http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/ . Nel link ci sono anche altri modi per farlo.


Si prega di evitare di fare riferimento a contenuti dai collegamenti ma includere anche le informazioni pertinenti per evitare la perdita di informazioni se il sito non è raggiungibile.
k0pernikus,

L'ho fatto e tutto sembrava funzionare, ma dopo un riavvio ho avuto solo un errore grub , quindi sembra che tu debba aggiungere qualche altra configurazione grub dopo questo aggiornamento automatico. forse con sudo apt-get install grub-emu?
rubo77,

6
Questo non funziona per Trusty => Xenial. Ricevi ancora domande sui file modificati / etc.
Willem,

Non dovrebbe essere eseguito con sudo?
Cerin,

Per quanto riguarda le domande sui file modificati / etc, esiste una soluzione interessante qui: awaseroot.wordpress.com/2012/04/29/… . Esegui il comando con 'echo "y \ n \ ny \ ny \ ny \ n" | 'davanti a do-release-upgrade. Semina le risposte alle domande. Aggiungi molte risposte nel caso in cui ci siano molti file modificati in / etc.
nmgeek,

6

Solo per espandere le risposte precedenti, ecco come fare in remoto lo stesso della risposta accettata, utilizzando un aggiornamento senza password su ssh che aggiornerà la tua casella all'ultima versione. Viene copiato dal mio blog .

Tutti questi passaggi presuppongono che il repository dei pacchetti funzioni. Questo significa che se esegui apt-get update non ti vengono presentati molti 404 a causa di una versione obsoleta. Devi prima risolverlo, quindi vedi questa risposta per quello.

0. Aggiorna tutti i pacchetti esistenti

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

1. Configurare l'esecuzione senza password

Aggiungi te stesso all'elenco degli utenti che possono eseguire do-release-upgrade usando sudo senza inserire una password si ottiene eseguendo

sudo visudo -f /etc/sudoers.d/do-release-upgrade.

e aggiungendo la seguente riga, sostituendo my-username con il tuo ovviamente:

my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade

2. Avvia aggiornamenti incrementali

Disconnettersi ed eseguire il comando seguente dal computer. Farà un aggiornamento senza richiedere input (accettando tutte le risposte predefinite), attendere il riavvio del computer, quindi riprovare a eseguire l'aggiornamento. Funziona fino a quando non si viene aggiornati all'ultima versione.

while true; do 
    ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
    sleep 120; 
done

3. Riportare i file di configurazione al loro stato precedente

Successivamente dovrai spostare i file di configurazione di backup nella loro posizione precedente poiché il processo di aggiornamento ha posto le configurazioni predefinite al loro posto.

Non sei soddisfatto delle risposte predefinite?

Questo ragazzo ha un modo per preparare le risposte per ogni richiesta, ma il rovescio della medaglia è che devi sapere quante richieste ci sono ...


5

Per confermare ciò che Thomas Ward afferma nella sua risposta e contraddire la risposta accettata, do-release-upgrade -d -f DistUpgradeViewNonInteractiveNON FUNZIONA.

In effetti al primo prompt ha rotto la mia partizione di prova dal 16.04 al 18.04 e ho dovuto richiuderlo. Qui è dove lo script si blocca:

Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...

Configuration file '/etc/systemd/logind.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y

Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...

A causa di Input Inhibitors, né il riavvio né l'arresto funzionano dopo aver ucciso lo script. Devi fare uno spegnimento a freddo (tieni premuto il pulsante di accensione ~ 10 secondi).

Per fortuna questo era un aggiornamento del clone 16.04 e non sulla vera partizione 16.04.


Per rendere la vita ancora più interessante, una nuova partizione da 898 MB è stata aggiunta al mio SSD NVMe e le mie partizioni regolari sono state spostate:

$ lsdrv
NAME        FSTYPE  LABEL                  MOUNTPOINT          SIZE MODEL

nvme0n1                                                        477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs                                               858M 
├─nvme0n1p3                                                     16M 
├─nvme0n1p1 ntfs                                               450M 
├─nvme0n1p8 ntfs    Shared_WSL+Linux       /mnt/e                9G 
├─nvme0n1p6 ext4    Ubuntu18.04                               23.7G 
├─nvme0n1p4 ntfs    NVMe_Win10             /mnt/c            390.4G 
├─nvme0n1p2 vfat                           /boot/efi            99M 
├─nvme0n1p9 swap    Linux Swap             [SWAP]              7.9G 
└─nvme0n1p7 ext4    NVMe_Ubuntu_16.0       /                  44.6G 
  • nvme0n1p5 era dove risiedeva la mia partizione Ubuntu 16.04 ma ora è accesa nvme0n1p7
  • nvme0n1p8 era dove risiedeva la mia partizione di prova 18.04 ma ora è attiva nvme0n1p8

NOTA: ho anche aggiornato Windows 10 da Build 1709 a Build 1803 questo pomeriggio, quindi è possibile che abbia creato la nuova nvme0n1p5partizione da 898 MB in ntfsformato.


Questo è un grande, però, quindi dovresti segnalarlo su Launchpad. Utilizzato il modo non interattivo attraverso diversi aggiornamenti di distribuzione in precedenza
oligofren

aggiornato Ubuntu e Windows sullo stesso box nello stesso giorno? devi provare dolore
JDS,

@JDS Windows è stato bloccato. 1700 aggiornamenti mancanti, tutti i tipi di dipendenze interrotte Python 2 vs Python 3. Devo cancellare e reinstallare Ubuntu 16.04 da Windows Store sospiro .
WinEunuuchs2Unix

2

Puoi farlo tramite il terminale, usando sudo apt-get -y upgrade. Questo risponderà "sì" a tutte le istruzioni. Tuttavia, non verrà eseguito automaticamente, quindi è necessario eseguirlo. Si dovrebbe lavorare. AFAIK non c'è modo di utilizzare il gestore degli aggiornamenti della GUI per eseguire aggiornamenti automatici del software ( questo NON è lo stesso di un aggiornamento della versione! )

Se stai tentando di eseguire l'aggiornamento a una versione diversa di Ubuntu (nota anche come aggiornamento della versione , e di solito la versione successiva nella linea di versioni relativa alla tua versione di Ubuntu), devi attivarla manualmente . sudo do-release-upgradepotrebbe funzionare. Tuttavia, non è possibile ignorare le istruzioni precedenti. Questo è il motivo per cui si avviano aggiornamenti quando si è in giro per tali richieste - ci saranno richieste.


1
"Tuttavia, non è possibile ignorare le istruzioni precedenti". Che dire del flag DistUpgradeViewNonInteractive? Questo salta le istruzioni.
oligofren,

1
@oligofren Thomas ha ragione perché -f DistUpgradeViewNonInteractiveflag fa bloccare lo script al primo (Y/I/N/O/D/Z)prompt. Vedi la mia risposta che ho appena pubblicato.
WinEunuuchs2Unix

-4

Prova ad aggiungere -yun'opzione a apt-getma sappi che risponderà a ytutte le domande.


1
Sto usando il gestore degli aggiornamenti grafico, non apt-get. Potrei fare l'aggiornamento nella console, ma ho sentito che 'apt-get dist-upgrade' non funzionava da anni (per l'aggiornamento tra le versioni), quindi il comando non sarebbe 'apt-get'.
jdm,

@jdm apt-get dist-upgradedovrebbe funzionare bene. Dove sei qui non funziona più?
Seth,

3
@Seth apt-get dist-upgradenon lo fa ora e non ha mai, in nessun sistema operativo, eseguito un aggiornamento della versione da solo. Vedere man apt-get. upgradeaggiorna solo i pacchetti che possono essere aggiornati senza che i pacchetti siano stati appena installati o disinstallati. dist-upgradeaggiorna i pacchetti anche quando ciò significa che i pacchetti vengono rimossi o aggiunti. Ciò è utile soprattutto per eseguire aggiornamenti ordinari, ad esempio upgradenon aggiornerà i kernel.
Eliah Kagan,

2
La modifica sources.listal punto agli archivi del prossimo rilascio e poi correre apt-get dist-upgradevolontà, se ha successo , eseguire un aggiornamento di rilascio. Questo è supportato in Debian anche se si consiglia di usarlo aptitude dist-upgradeinvece a causa della sua risoluzione di dipendenza più avanzata. In Ubuntu, nulla di simile è supportato , anche se potrebbe avere successo. Al contrario, viene utilizzato per eseguire l'aggiornamento a una versione successiva nella riga di comando do-release-upgrade. Quell'utilità non prende un -yflag, quindi questa risposta non si applica alla situazione dell'aggiornamento a una nuova versione .
Eliah Kagan,

Eh, interessante. Allora dovevo aver letto di Debian.
Seth,
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.