Un solo comando per aggiornare tutto in Ubuntu?


15

So che ci sono tre comandi per aggiornare e quindi aggiornare l'intero sistema, questi sono:

  • sudo apt-get update # Recupera l'elenco degli aggiornamenti disponibili
  • sudo apt-get upgrade # Aggiorna rigorosamente i pacchetti attuali
  • sudo apt-get dist-upgrade # Installa aggiornamenti (nuovi)

Esiste un comando di superaggiornamento che combina tutti questi comandi con uno solo?


1
No, puoi fare al massimosudo apt-get update && sudo apt-get dist-upgrade
heemayl,

È ancora una riga di comando! ;-)
Fabby,

Per coloro che un giorno si imbatteranno in questa domanda, eccone una correlata da eseguire updatee upgradecome one-liner askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy,

Risposte:


23

Ci sono 3 scelte decenti:

  1. È possibile creare uno script simile al seguente:

    #!/bin/bash
    set -e
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get dist-upgrade

    Chiamalo in modo simile update.she posizionalo /usr/local/bine quindi esegui lo script eseguendo:

    sudo chmod +x /usr/local/bin/update.sh
  2. Un altro metodo sarebbe quello di creare un alias bash (in ~/.bashrc) o dovunque normalmente memorizzi i tuoi alias:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Un metodo finale sarebbe semplicemente mettere insieme i 3 comandi sulla riga di comando:

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

Alcune scelte ...

Riferimento:


6
Quando si utilizza dist-upgradenon ha senso fare in upgradeanticipo ...
heemayl

3
@heemayl: In teoria sì. In pratica ci sono casi angolari in cui un diretto dist-upgradepuò fallire ma upgradeseguito da dist-upgradenon lo farà. Ciò è in gran parte dovuto a bug di definizione della dipendenza dei pacchetti o alla miscelazione di pacchetti di diverse versioni / distribuzioni / PPA. Se si utilizzano solo pacchetti dai repository ufficiali di Canonical per esattamente una versione (impostazione predefinita), tali errori dovrebbero essere estremamente rari e risolti rapidamente.
David Foerster,

2
C'è anche la variante impress-friends di # 3:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay il

1
Nel passaggio 1, cosa fa "set -e"?
Karjedavpalaa,

7

Se sei infastidito da troppe digitazioni, puoi definirti un "alias". Questo può essere fatto ad esempio aggiungendo una riga alla fine del tuo in $HOME/.profilequesto modo:

alias sau='sudo aptitude update && sudo aptitude upgrade'

(ovviamente puoi sostituire "sau" con qualcos'altro, per me è l'acronimo di Sudo Apt-get Update). Dopo aver salvato il file, apri una nuova shell (o "sorgente" di nuovo .profile in esecuzione . $HOME/.profile. Ora puoi sempre semplicemente digitare "sau" per fare il lavoro completo. Funziona alla grande con me su più macchine.


Hm. Immagino stavo solo chiedendo a qualcuno di dirmi alias: P
polandeer

Sì, ma è l'unico modo per farlo con un "comando singolo". E la tua domanda non lo ha escluso;)
Izzy

Difficile. Ad ogni modo, l'unico motivo per cui ho chiesto era perché volevo capire meglio, non perché sono troppo pigro per scrivere. sudo aptitude update && sudo aptitude upgradeIl motivo per cui l'ho chiesto è perché puoi farlo con pacman ( sudo pacman -Syu --noconfirm).
polandeer,

Se devi farlo spesso e su più macchine, sei contento di poter almeno avere un alias. Comunque: apt-get updateha un parametro -u, secondo la pagina man che mostra gli aggiornamenti disponibili. Non ho provato a chiedergli di applicarli (non avere Ubuntu / Debian vicino a me per controllare subito).
Izzy,

7

Possiamo avere un comando one-liner (non c'è bisogno di script, basta copiare e incollare)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - aggiorna l'elenco dei pacchetti ma non lo installa
  • upgrade - installare nuove versioni dei pacchetti se sono disponibili nuove versioni
  • full-upgrade - svolge la funzione di aggiornamento ma rimuoverà i pacchetti attualmente installati se è necessario per aggiornare il sistema nel suo insieme (correggendo quindi le dipendenze errate)
  • autoremove, autocleanE clean- vecchi pacchetti puliti che non sono necessari più
  • L'opzione -ynon richiede l'autorizzazione per ogni passaggio


2
sudo apt install unattended-upgrades

Questa è la migliore linea di sempre. Tutte le altre soluzioni che devi digitare una riga più e più volte ogni giorno. Questa è veramente la soluzione a un comando. Vedi documentazione apt ufficiale da Ubuntu!

Modificando i .conffile di questo pacchetto /etcè possibile impostare la frequenza diupdate, install, clean, autoremove ...

O semplicemente e-mail tra cui una notifica che un aggiornamento è disponibile con l'elenco dei nomi dei pacchetti

Un piccolo file di registro viene generato ad ogni modifica e immagino che un piccolo script possa essere scritto come estensione gui per apparire anche nelle notifiche del desktop (off topic haha)

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.