ubuntuusers.de

apt upgrade oder apt full-upgrade / dist-upgrade

Status: Gelöst | Ubuntu-Version: Kubuntu 20.04 (Focal Fossa)
Antworten |

OKFliese

Anmeldungsdatum:
15. April 2021

Beiträge: 91

Hallo Forum,

obwohl ich schon viel recherchiert habe ist mir eine Sache beim manuellen updaten nicht so klar. Diese Seite habe ich bereits gelesen: https://wiki.ubuntuusers.de/apt/apt/

Ich habe verstanden, dass upgrade nur vorhandene pakete erneuert, aber keine ergänzt oder löscht. dist-upgrade oder full-upgrade dagegen ist etwas intelligenter und checkt auch Abhängigkeiten und löscht unter Umständen nicht mehr benötigte Pakete.

Widersprüchliches habe ich allerdings darüber gelesen, was besser ist. Manche sagen, "upgrade" sei sicherer für das System, andere wiederum sagen "dist-upgrade" sei sicherer und "upgrade" kann über kurz oder lang das System beschädigen.

Mein plan ist hin und wieder folgendes zu machen:

- "sudo apt update"

- "sudo apt full-upgrade"

und machmal:

- "sudo apt autoremove"

Wie haltet ihr das? Einen Unterschied zwischen dist-upgrade und full-upgrade gibt es nicht, oder?

Besten Dank, ich bin noch am Anfang.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Ich beziehe mich hier rein auf die *buntus. Bei Debian/Ablegern oder Ubuntu-Ablegern verhält sich das bisweilen anders!

Es ist egal, ob du nun apt oder apt-get verwendest. Beide arbeiten mit dpkg und machen das selbe. Ich würde immer so aktualisieren:

1
sudo apt update && sudo apt full-upgrade && sudo apt autoremove

Das && dazwischen bewirkt, dass der Folgebefehl nur ausgeführt wird, wenn der vorherige fehlerfrei durchgelaufen ist, ansonsten wird abgebrochen.

full-upgrade ist dabei upgrade mit der Option Abhängigkeiten auch aufzulösen. Unter Ubuntu ist das also gleich mit sudo apt-get upgrade && sudo apt-get dist-upgrade.

Manche sagen, "upgrade" sei sicherer für das System…

Welche manche? Hast du da einen Zusammenhang oder ein paar Quellen? Wie oben erwähnt ist es wichtig zu unterscheiden, welches System man nutzt. Ubuntu ist nur das, was offiziell auch unterstützt wird. Bspw. KDE neon kann man nur mit upgrade auch gut kaputt machen, bei Debian kann man je nach sources.list mit dist-upgrade auf die nächste Version upgraden — also das was bei Ubuntu das do-release-upgrade macht, etc.

Was man ab und an machen sollte, steht auch in Systempflege gut beschrieben.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14308

ChickenLipsRfun2eat schrieb:

Unter Ubuntu ist das also gleich mit sudo apt-get upgrade && sudo apt-get dist-upgrade.

Wenn doch eh "sudo apt-get dist-upgrade" ausgeführt werden soll, warum wird vorher noch "sudo apt-get upgrade" benötigt?

BTW: Unter Ubuntu gibt es auch noch "sudo apt-get upgrade --with-new-pkgs".

--with-new-pkgs
           erlaubt das Installieren neuer Pakete, wenn es zusammen mit upgrade benutzt wird. Dies ist nützlich, falls
           das Aktualisieren eines installierten Pakets zur Installation neue Abhängigkeiten erfordert. Anstatt das
           Paket zurückzuhalten, wird upgrade ein Upgrade des Pakets durchführen und die neuen Abhängigkeiten
           installieren. Beachten Sie, dass upgrade mit dieser Option niemals Pakete entfernen, sondern nur das
           Hinzufügen neuer gestatten wird. Konfigurationselement: APT::Get::Upgrade-Allow-New.

OKFliese

(Themenstarter)

Anmeldungsdatum:
15. April 2021

Beiträge: 91

ChickenLipsRfun2eat schrieb:

Hallo!

Ich beziehe mich hier rein auf die *buntus. Bei Debian/Ablegern oder Ubuntu-Ablegern verhält sich das bisweilen anders!

Es ist egal, ob du nun apt oder apt-get verwendest. Beide arbeiten mit dpkg und machen das selbe. Ich würde immer so aktualisieren:

1
sudo apt update && sudo apt full-upgrade && sudo apt autoremove

Das && dazwischen bewirkt, dass der Folgebefehl nur ausgeführt wird, wenn der vorherige fehlerfrei durchgelaufen ist, ansonsten wird abgebrochen.

full-upgrade ist dabei upgrade mit der Option Abhängigkeiten auch aufzulösen. Unter Ubuntu ist das also gleich mit sudo apt-get upgrade && sudo apt-get dist-upgrade.

Manche sagen, "upgrade" sei sicherer für das System…

Welche manche? Hast du da einen Zusammenhang oder ein paar Quellen? Wie oben erwähnt ist es wichtig zu unterscheiden, welches System man nutzt. Ubuntu ist nur das, was offiziell auch unterstützt wird. Bspw. KDE neon kann man nur mit upgrade auch gut kaputt machen, bei Debian kann man je nach sources.list mit dist-upgrade auf die nächste Version upgraden — also das was bei Ubuntu das do-release-upgrade macht, etc.

Was man ab und an machen sollte, steht auch in Systempflege gut beschrieben.

Besten Dank, werde so verfahren.

Hatte hier und da etwas gelesen. Hier z.B. https://embeddedinventor.com/apt-upgrade-vs-full-upgrade-differences-explained-for-beginners/ steht in der Tabelle unter "apt upgrade" "safer option" und unter "apt full-upgrade" "caution needed"... Und auch sonst hier und da, aber finde es jetzt nicht wieder... Dass es vom Betriebsystem abhängig ist leuchtet ein. Verwende Kubuntu LTS

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9615

Wohnort: Münster

OKFliese schrieb:

[…] Manche sagen, "upgrade" sei sicherer für das System

Diese Leute haben Recht. Bezogen auf das System.

andere wiederum sagen "dist-upgrade" sei sicherer

Diese Leute haben auch Recht, aber nur bezogen auf den Upgrade-Vorgang, nicht in Bezug auf das System.

und "upgrade" kann über kurz oder lang das System beschädigen.

Das ist nur dann möglich, wenn man vorher schon sein System zerschossen hat oder die Paketquellen in einem desolaten Zustand sind. In solchen Fällen wird aber "dist-upgrade" auch zu keinem besseren Ergebnis führen als "upgrade".

Zunächst einmal muss man sich klarmachen, dass apt und apt-get unterschiedliche Programme sind, welche unterschiedliches tun.

  • apt kennt "upgrade" und "full-upgrade", aber nicht "dist-upgrade". Wenn "apt dist-upgrade" etwas anderes als eine Fehlermeldung hervorruft, macht es etwas undokumentiertes. Vorsichtige Leute verwenden das nicht.

  • apt-get kennt "upgrade" und "dist-upgrade", aber kein "full-upgrade". Vorsichtige Leute verwenden also kein "apt-get full-upgrade".

Über die Unterschiede informiert die jeweilige Manpage:

man apt
man apt-get

Für die normale Systempflege innerhalb einer Version verwendet man:

sudo apt update
sudo apt upgrade

"upgrade" wird niemals ein Paket entfernen. Wenn ein upgrade-Lauf die Entfernung eines Pakets erfordert, wird dieser daher Fehlschlagen und man bekommt eine Fehlermeldung. Diese sollte man lesen und nach Möglichkeit den Konflikt beseitigen. Innerhalb des Wirkungskreises der Distribution sollte es niemals zu einem solchen Problem kommen. Wenn man also in die Situation kommt, dass "upgrade" fehlschlägt, hat man vorher aus obskuren Quellen etwas installiert, was mit dem System nicht harmoniert. Es ist besser, das zu bereinigen als unkritisch "full-upgrade" anzuwenden.

Wenn es nach einem "upgrade" Pakete geben sollte, welche nicht mehr benötigt werden, werden diese als automatisch entfernbar markiert. Man kann sie dann mit "autoremove" entfernen. Aber Vorsicht: Die Ansicht des Systems, was es nicht mehr benötigt, und die Ansicht des Benutzers, was er nicht mehr benutzen möchte, müssen nicht übereinstimmen! Man sollte niemals "autoremove" unkritisch anwenden, sondern erst nach Prüfung der zu entfernenden Paketliste!

In Wahrheit ist also keiner dieser Befehle absolut sicher, sondern jeder bedarf bei jeder Anwendung der Beurteilung durch den Administrator des Systems.

OKFliese

(Themenstarter)

Anmeldungsdatum:
15. April 2021

Beiträge: 91

Danke für die Infos.

"sudo apt autoremove" entfernt auch alte Kernel, richtig? Das ist für mich wichtig, da meine boot Partition automatisch erstellt wurde und nicht voll werden darf. In welchen zeitlichen Abständen kommen denn in etwa neue hinzu?

Ich habe in einem anderen Thread aufgeschnappt, dass "sudo apt-get autoremove --purge" nicht mehr notwendig ist, wie in folgender Beschreibung: https://wiki.ubuntuusers.de/Kernel/#Kernel-deinstallieren

Speedy-10

Avatar von Speedy-10

Anmeldungsdatum:
23. März 2010

Beiträge: 915

Wohnort: Pfalz

Hallo OKFliese, je nachdem, für was du dich entscheidest, noch eine Idee. Ich habe mir mit ~$ vi .bash_aliases u.A. folgende Aliase angelegt:

alias up='sudo apt update && sudo apt upgrade'
alias up2='sudo apt update && sudo apt upgrade && systemctl suspend'
alias cl='sudo apt autoclean && sudo apt autopurge'

Damit kann ich dann bei Bedarf schnell Befehle ausführen.

VG

OKFliese

(Themenstarter)

Anmeldungsdatum:
15. April 2021

Beiträge: 91

habe es gestern mal per:

"sudo apt update && sudo apt full-upgrade && sudo apt autoremove"

durchlaufen lassen. Dabei habe ich direkt ein paar sich wiederholende Fehlermeldungen erhalten. Blöderweise habe ich das Terminal längst wieder geschlossen. Gibt es irgendwo einen Verlauf der Ausgaben? Es ging so in die Richtung "sda/.... Device kann nicht gefunden werden" (mehrfach wiederholend). Dachte es läge vllt an der Systemverschlüsselung. Jedenfalls wurden Pakete installiert und entfernt. Hoffe ich habe hier nichts zerschossen?! Kann ich irgendwas zur Überprüfung unternehmen? Das System läuft bisher unauffällig.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

OKFliese schrieb:

…Gibt es irgendwo einen Verlauf der Ausgaben?…

Es gibt einmal generell journalctl, da steht eigentlich alles drin.

Speziell für apt gibt es noch /var/log/apt/history.log oder so ähnlich.

OKFliese

(Themenstarter)

Anmeldungsdatum:
15. April 2021

Beiträge: 91

Danke. Also in der apt history habe ich schonmal das folgende gefunden:

"Start-Date: 2021-05-11  18:19:39
Commandline: apt autoremove
Requested-By: (name)
Remove: libreoffice-help-common:amd64 (1:6.4.7-0ubuntu0.20.04.1)
End-Date: 2021-05-11  18:19:40

Start-Date: 2021-05-11  21:12:38
Commandline: apt full-upgrade
Requested-By: (name)
Install: linux-modules-5.8.0-53-generic:amd64 (5.8.0-53.60~20.04.1, automatic), linux-hwe-5.8-headers-5.8.0-53:amd64 (5.8.0-53.60~20.04.1, automatic), linux-image-5.8.0-53-generic:amd64 (5.8.0-53.60~20.04.1, automatic), linux-modules-extra-5.8.0-53-generic:amd64 (5.8.0-53.60~20.04.1, automatic), linux-headers-5.8.0-53-generic:amd64 (5.8.0-53.60~20.04.1, automatic)
Upgrade: bluez:amd64 (5.53-0ubuntu3, 5.53-0ubuntu3.1), linux-headers-generic-hwe-20.04:amd64 (5.8.0.50.56~20.04.34, 5.8.0.53.60~20.04.37), bluez-cups:amd64 (5.53-0ubuntu3, 5.53-0ubuntu3.1), linux-image-generic-hwe-20.04:amd64 (5.8.0.50.56~20.04.34, 5.8.0.53.60~20.04.37), linux-generic-hwe-20.04:amd64 (5.8.0.50.56~20.04.34, 5.8.0.53.60~20.04.37), bluez-obexd:amd64 (5.53-0ubuntu3, 5.53-0ubuntu3.1), libbluetooth3:amd64 (5.53-0ubuntu3, 5.53-0ubuntu3.1)
End-Date: 2021-05-11  21:13:19

Start-Date: 2021-05-11  21:14:02
Commandline: apt autoremove
Requested-By: (name)
Remove: linux-image-5.8.0-43-generic:amd64 (5.8.0-43.49~20.04.1), linux-modules-extra-5.8.0-43-generic:amd64 (5.8.0-43.49~20.04.1), linux-headers-5.8.0-43-generic:amd64 (5.8.0-43.49~20.04.1), linux-modules-5.8.0-43-generic:amd64 (5.8.0-43.49~20.04.1), linux-hwe-5.8-headers-5.8.0-43:amd64 (5.8.0-43.49~20.04.1)
End-Date: 2021-05-11  21:14:12"

Komischerweise habe ich im journalcts zu der Zeit nichts konkretes gefunden. Oder zumindest nichts, was wie die Fehlermeldung war, die ich gesehen habe. Das Einzige, was vielleicht etwas passt zu Zeit und Inhalt ist folgendes aus journalcts:

"debug: /dev/sda1 is not a BeFS partition: exiting
Mai 11 21:14:12 debug: running /usr/lib/os-probes/mounted/90linux-distro on mounted /dev/sda1
Mai 11 21:14:12 debug: running /usr/lib/os-probes/mounted/90solaris on mounted /dev/sda1
Mai 11 21:14:12 debug: running /usr/lib/os-probes/mounted/05efi on mounted /dev/sda2"

(mehrere Meldungen in der Art)

Sieht das soweit okay aus? Werde in Zukunft auf jeden Fall vorsichtiger umgehen mit autoremove und full-upgrade

Bearbeitet von ChickenLipsRfun2eat:

Bitte verwende in Zukunft Codeblöcke und vermeide Vollzitate um die Übersicht im Forum zu verbessern!

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Könnten auch einfach ungepflegte Paketquellen sein. Zeige bitte mal die Terminalausgaben von

sudo dpkg --configure -a #unkonfigurierte Pakete bearbeiten
sudo apt-get -f install #Abhängigkeiten auflösen
sudo apt-get clean && sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove #Paketcache leeren, System aktualisieren

hier im Codeblock und von Prompt zu Prompt.

Falls du Fremdquellen/PPA verwendest bitte auch noch

apt-cache policy

Quellen: dpkg, apt-get

OKFliese

(Themenstarter)

Anmeldungsdatum:
15. April 2021

Beiträge: 91

ok. Ist es egal, ob apt oder apt-get? Habe bisher immer apt genommen.

Und danke für den Hinweis mit dem codeblock.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

OKFliese schrieb:

ok. Ist es egal, ob apt oder apt-get? Habe bisher immer apt genommen.

Ja, ist es. apt funktioniert auch. Meine Textkonserve ist allerdings noch etwas älter, da steht halt noch apt-get drin 😉

OKFliese

(Themenstarter)

Anmeldungsdatum:
15. April 2021

Beiträge: 91

Und nur noch kurz zum Verständnis: Warum sollen mit

sudo apt -f install

die Abhängigkeiten aufgelöst werden? Schadet das nicht?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

OKFliese schrieb:

Und nur noch kurz zum Verständnis: Warum sollen mit

sudo apt -f install

die Abhängigkeiten aufgelöst werden? Schadet das nicht?

-f bedeutet --fix-broken, da wird versucht nach der „wahrscheinlichsten Lösung“ zu installieren, um Probleme zu korrigieren, wenn vorher eine Installation fehlschlug. Mit

man 8 apt-get 

bekommst du eine genaue Erklärung für alle einzelnen Teile (und alle weiteren). apt beruft sich auch in weiten Teilen auf apt-get, so dass da vieles gleich läuft.

Antworten |