Ein einziger Befehl, um alles in Ubuntu zu aktualisieren?

15

Ich weiß, dass es drei Befehle gibt, um das gesamte System zu aktualisieren und anschließend zu aktualisieren:

  • sudo apt-get update # Ruft die Liste der verfügbaren Updates ab
  • sudo apt-get upgrade # Aktualisiert die aktuellen Pakete strikt
  • sudo apt-get dist-upgrade # Installiert Updates (neue)

Gibt es einen Super-Upgrade-Befehl, der alle diese Befehle zu einem kombiniert ?

JohnDoea
quelle
1
Nein, das können Sie höchstenssudo apt-get update && sudo apt-get dist-upgrade
heemayl
Es ist immer noch eine Befehlszeile! ;-)
Fabby
Für diejenigen, die eines Tages über diese Frage stolpern werden, ist hier eine verwandte zu laufen updateund upgradeals Einzeiler askubuntu.com/a/1086022/295286
Sergiy Kolodyazhnyy

Antworten:

23

Es gibt 3 anständige Möglichkeiten:

  1. Sie könnten ein Skript wie das folgende erstellen:

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

    Nennen Sie es so ähnlich wie update.shund platzieren Sie es in /usr/local/binund machen Sie das Skript dann ausführbar, indem Sie Folgendes ausführen:

    sudo chmod +x /usr/local/bin/update.sh
  2. Eine andere Methode ist das Erstellen eines Bash-Alias ​​(in ~/.bashrc) oder wo immer Sie normalerweise Ihre Aliase speichern:

    alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade'
  3. Eine abschließende Methode wäre, einfach die 3 Befehle in der Befehlszeile aneinander zu reihen:

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

Ein paar Möglichkeiten ...

Referenz:

andrew.46
quelle
6
Wenn Sie verwenden, dist-upgradegibt es keinen upgrade
Grund
3
@heemayl: Theoretisch ja. In der Praxis gibt es Eckfälle, in denen ein direkter dist-upgradeFehler auftreten kann, upgradegefolgt von einem dist-upgradenicht. Dies ist größtenteils auf Fehler bei der Definition von Paketabhängigkeiten oder auf das Mischen von Paketen aus verschiedenen Releases / Distributionen / PPAs zurückzuführen. Wenn man nur Pakete aus den offiziellen Repositorys von Canonical für genau eine Version verwendet (Standardeinstellung), sollten solche Fehler äußerst selten sein und schnell behoben werden.
David Foerster
2
Es gibt auch die Impress-Friends- Variante von # 3:for x in update {,dist-}upgrade; do sudo apt $x; done
Eli Barzilay
1
Was macht "set -e" in Schritt 1?
Karjedavpalaa
7

Wenn Sie sich über zu viele Eingaben ärgern, können Sie sich einen "Alias" definieren. Dies kann zB durch Hinzufügen einer Zeile an Ihr Ende geschehen $HOME/.profile:

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

(Natürlich können Sie "sau" durch etwas anderes ersetzen - für mich ist das eine Abkürzung für Sudo Apt-get Update). Öffnen Sie nach dem Speichern der Datei eine neue Shell (oder "quellen" Sie das .profile erneut ab . $HOME/.profile. Jetzt können Sie immer einfach "sau" eingeben, um den gesamten Job zu erledigen. Funktioniert hervorragend mit mehreren Computern.

Izzy
quelle
Hm. Ich schätze, ich habe nur jemanden gebeten, mir zu sagen, dass ich es alias soll: P
polandeer
Ja, aber das ist die einzige Möglichkeit, dies mit einem einzigen Befehl zu tun. Und Ihre Frage hat dies nicht ausgeschlossen;)
Izzy
Tricky. Der einzige Grund, den ich gefragt habe, war, dass ich Apt besser verstehen wollte, nicht, weil ich zu faul bin, um zu schreiben. sudo aptitude update && sudo aptitude upgradeDer Grund, den ich gefragt habe, war, dass Sie es mit Pacman ( sudo pacman -Syu --noconfirm) tun können .
Polandeer
Wenn Sie dies häufig und auf mehreren Computern tun müssen, sind Sie froh, dass Sie zumindest einen Alias ​​haben können. Allerdings: apt-get updateHat -ulaut Manpage einen Parameter , der verfügbare Updates anzeigt. Habe nicht probiert, ob es dann darum bittet, sie anzuwenden (habe gerade kein Ubuntu / Debian in meiner Nähe, um dies zu überprüfen).
Izzy
7

Wir können einen einzeiligen Befehl haben (keine Skripte erforderlich, nur Kopieren-Einfügen)

sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y
  • update - Aktualisiert die Liste der Pakete, installiert sie jedoch nicht
  • upgrade - Installieren Sie neue Versionen von Paketen, wenn neue Versionen verfügbar sind
  • full-upgrade - führt die Funktion des Upgrades aus, entfernt jedoch aktuell installierte Pakete, wenn dies für das Upgrade des gesamten Systems erforderlich ist (und behebt dann schlechte Abhängigkeiten).
  • autoremove, autocleanund clean- alte Pakete, die nicht mehr benötigt werden , säubern
  • Die Option -yfordert nicht bei jedem Schritt die Erlaubnis an
João Pimentel Ferreira
quelle
3

Leider müssen die beiden Befehle separat ausgeführt werden.

Cormac O'Brien
quelle
2
sudo apt install unattended-upgrades

Dies ist die bisher beste Linie. Bei allen anderen Lösungen müssen Sie die eine Zeile jeden Tag neu eingeben. Dies ist wirklich die Ein-Befehl-Lösung. Siehe offizielle Dokumentation von Ubuntu!

Durch Bearbeiten der .confDateien in diesem Paket /etckönnen Sie die Häufigkeit der update, install, clean, autoremove...

Oder einfach und per E-Mail einschließlich einer Benachrichtigung, dass ein Update mit der Liste der Paketnamen verfügbar ist

Bei jeder Änderung wird eine nette kleine Protokolldatei generiert, und ich stelle mir vor, dass ein kleines Skript als GUI-Erweiterung geschrieben werden könnte, um auch in den Desktop-Benachrichtigungen auftauchen zu können (off topic haha).

kein Coderp
quelle