Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
joe2017
- Beiträge: 1274
- Registriert: 07.08.2017 14:29:51
Beitrag
von joe2017 » 27.01.2022 11:11:45
Schönen Guten Morgen zusammen,
ich habe eine kurze Frage zu den debian Updates. Diese werden bei mir automatisch mittels script installiert.
Ab und zu kommt es vor, dass ich einen Fehler erhalte. Leider finde ich die Fehlermeldung im Log nicht mehr.
Anbei aber die beiden Fehlerbehebungen zu den Meldugen die ich in den letzten Tagen hatte:
Code: Alles auswählen
sudo dpkg --configure -a
sudo apt --fix-broken install
Kann man das irgendwie abfangen und ausführen wenn die Updates wegen einem Fehler nicht installiert werden?
-
reox
- Beiträge: 2515
- Registriert: 06.06.2006 22:09:47
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von reox » 28.01.2022 12:58:42
Wenn apt irgendwo einen fehler wirft, sollte es mit einem exit code != 0 enden. Das kannst du in dem script ja auch abfangen.
-
mat6937
- Beiträge: 3366
- Registriert: 09.12.2014 10:44:00
Beitrag
von mat6937 » 29.01.2022 09:22:36
joe2017 hat geschrieben: 27.01.2022 11:11:45
... ausführen wenn die Updates wegen einem Fehler nicht installiert werden?
Du könntest
in die Konfiguration von apt eintragen, damit es bei Bedarf (d. h. wegen einem Fehler) benutzt wird.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce
-
michaa7
- Beiträge: 4917
- Registriert: 12.12.2004 00:46:49
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von michaa7 » 01.02.2022 16:09:04
Wenn es beim update zu einem Fehler kommt ist der meiner Ansicht nach wert wahrgenommen und beurteilt zu werden. Und je nachdem was das script genau macht (apt upgrade ?, apt dist-upgrade ?) und je nach sub-distri (stable?, testing?, unstable?) interessiert das mit ansteigender Dringlichkeit wenn du dein System nicht früher oder später per Script schrotten willst.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
-
joe2017
- Beiträge: 1274
- Registriert: 07.08.2017 14:29:51
Beitrag
von joe2017 » 07.03.2022 09:05:19
Ich setzte ausschließlich debian stable ein. Und alle Clients haben die selbe Version (derzeit Bullseye).
Mir geht es darum, dass ich ca 200 Clients habe und diese nicht alle manuel prüfen kann.
Wenn der Befehl "sudo dpkg --configure -a" nicht ausgeführt wird, erhält der Client keine Updates mehr. Das wäre noch unschöner.
Gibt es hier keine Möglichkeit diesen Fehler/Meldung abzufragen um dies zu beheben?
-
reox
- Beiträge: 2515
- Registriert: 06.06.2006 22:09:47
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von reox » 07.03.2022 10:39:22
Vielleicht hilft dir
apt-dater
-
fischig
- Beiträge: 4116
- Registriert: 24.12.2019 12:25:08
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von fischig » 07.03.2022 16:48:52
Ich wage mal einzuwerfen, dass der TE von upgrade-Fehlern spricht, nicht von update-Fehlern. Das sind zwei sehr verschiedene apt-Befehle, die man tunlichst auseinanderhalten sollte.
upgedatet wird /werden die sources.list(en), upgegradet werden installierte Pakete - oder ich ich mich? Soweit ich sehe, geht's hier um letzteres.
-
joe2017
- Beiträge: 1274
- Registriert: 07.08.2017 14:29:51
Beitrag
von joe2017 » 08.03.2022 07:23:47
Da hast du vollkommen Recht!
apt update wird vollkommen korrekt ausgeführt.
Die Fehlermeldung taucht bei dem apt upgrade Befehl auf.
Code: Alles auswählen
sudo apt full-upgrade
Fehlerbehebung:
sudo dpkg --configure -a
sudo apt --fix-broken install
Das möchte ich abfragen und abfangen. Oder wäre es generell kein Problem die beiden FIX Befehle voranzustellen?
-
reox
- Beiträge: 2515
- Registriert: 06.06.2006 22:09:47
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von reox » 08.03.2022 08:58:58
Naja du kannst schon immer auch die "fix befehle" ausführen (wenn nichts zu tun ist, sollten die auch nichts tun), aber damit schießt du dir vermutlich auf kurz oder lang ins Knie. Das geht nämlich genau so lange gut wie die Probleme sich genau mit diesen Befehlen auch beheben lassen.
Ich denke, wenn schon ein upgrade so fehl schlägt, dass du diese Befehle brauchst, ist es auch notwendig da mal selber drauf zu schauen was genau warum kaputt gegangen ist.
mMn ist es das sinnvollste den Rückgabewert von apt full-upgrade anzusehen und bei != 0 eine Fehlermeldung zu werfen ala "Bitte mal schauen was da los ist". Ich kenne nur ganz wenig Fälle wo "immer alle fix scripte starten" die korrekte Lösung ist...
-
joe2017
- Beiträge: 1274
- Registriert: 07.08.2017 14:29:51
Beitrag
von joe2017 » 08.03.2022 12:12:15
Ich lasse die Updates automatisch bei dem Neustart durchführen. Wenn in der Zeit des Updates jemand den PC herunterfährt, kommt die FIX Meldung bei dem nächsten Neustart beim Update Versuch.
Das wollte ich damit beheben. Wenn ich diesen Zustand abfragen kann, kann ich mir natürlich auch eine Info an mich via mail oder was auch immer generieren.
Wenn ich weiß wie ich diese Meldung abfragen könnte ich das einrichten.
-
willy4711
Beitrag
von willy4711 » 09.03.2022 09:51:20
Vielleicht mal in /var/log/apt/term.log nachsehen.
Dort steht der komplette Text, der auch im Terminal angezeigt wird.
Den nach bestimmten Begriffen zu filtern sollte keine Schwierigkeit sein.
-
reox
- Beiträge: 2515
- Registriert: 06.06.2006 22:09:47
- Lizenz eigener Beiträge: MIT Lizenz
Beitrag
von reox » 10.03.2022 10:53:38
mhh naja eine möglichkeit ist apt-get check.
Ich kannte das vorher auch nicht aber hab es mal getestet. Wenn während dem Paketdownload unterbrochen (kill -9) wird, schreibt es gar nichts. Während dem unpacking aber:
Code: Alles auswählen
root@2b6771132699:/# apt-get check
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
root@2b6771132699:/# echo $?
100
Das ist übrigens das selbe, was mir apt-get install dann auch anschreibt, wenn ich es erneut starte.
Hab auch mal in der "Setting up" Phase unterbrochen, da kommt die selbe meldung.
-
joe2017
- Beiträge: 1274
- Registriert: 07.08.2017 14:29:51
Beitrag
von joe2017 » 06.04.2022 09:56:54
Hi reox,
vielen Dank für die Info. Das werde ich direkt mal testen.