Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe
allgemeine Kategorie => Installation & Einrichtung => Thema von: Andreas am 05. Oktober 2019, 16:43:08

Titel: Projekt "mein swupdate Script verbessern"
Beitrag von: Andreas am 05. Oktober 2019, 16:43:08

Bei Arch gibt es im Falle von Update-Problemen eine absolut überschaubare Menge an möglichen Ursachen, die sich alle stumpf durch das Abarbeiten meiner im Thread "Alles über Updates bei Arch/Antergos/Endeavour" aufgeführten Aspekte lösen lassen. Eine erhebliche Menge dieser Probleme erfordert zwar einen Eingriff durch den User, aber sehr oft keine Entscheidung
(er muss nämlich nur:
  • die ausgegebenen Fehlermeldungen mit denen in meinem Thread vergleichen
  • dann die dort aufgeführten richtigen (!!!) Kommandos mit copy & paste ausführen
  • )
    Das schreit förmlich danach, genau diese Probleme von meinem Script selbst abfangen zu lassen und mein Script führt dann die nötigen Befehle anhand von Vergleichen und Entscheidungen selbsttätig aus. Dabei müssen dann einfach bestimmte Worte aus den Fehlermeldungen extrahiert werden (z.B. Paketnamen - diese Worte stehen ja immer an denselben Positionen der Fehlermeldungen und sind deshalb automatisiert zu ermitteln) und dann in die nötigen Befehle eingefügt werden...

    Das ist ein sehr sinnvolles Projekt, da leider trotz Anleitung viele nicht in der Lage sind, die Ausgaben zu vergleichen und dann richtig zu handeln :'(

    Ich habe also damit begonnen, das nach und nach zu realisieren. Dabei müssen die aufgeführten Fehler auch real auftreten, denn nur dann kann ich testen, ob alles so läuft wie es soll.

    Einen ersten Erfolg kann ich verbuchen: Heute gab es mal wieder ein Update von "yay" - und das läuft IMMER in ein Problem, das in meinem Thread "Alles über Updates bei Arch/Antergos/Endeavour" aufgeführt ist... Ich habe das eingepflegt - und: es funktioniert!! Wenn der besagte Fehler auftritt, erkennt ihn mein verbessertes Script und es löscht dann selbsttätig den Ordner ~/.cache/yay/yay rekursiv und startet das Update erneut von selbst - und diesmal läuft es durch 8) Nun werden nach und nach die anderen Probleme bei denen keine User-Entscheidung notwendig ist folgen. Ihr könnt das jeweils aktuelle Script swupdate von mir auf den Treffen erhalten - oder ihr kopiert euch den Text aus dem Beitrag weiter unten wie dort beschrieben. Wenn ich neue Automaten eingebaut habe lasse ich es euch hier wissen.

    2becontinued

    LG
    Andreas

Titel: Re:Projekt "mein swupdate Script verbessern"
Beitrag von: DL8EBD am 07. Oktober 2019, 05:11:36

sehr schön Andreas, das macht es Newbies, wie ich einer bin, doch erheblich einfacher.
Ich versuche das Zeitnah umzusetzen - habe gerade viele Baustellen und zu wenig Zeit.

Vielen Dank für Deinen Einsatz

Titel: Re:Projekt "mein swupdate Script verbessern"
Beitrag von: Andreas am 07. Oktober 2019, 05:40:28

Ich werde das Script auch hier veröffentlichen. Da es eben KEIN kompilierter Code, sondern eine Textdatei ist (eben ein Bash-Script) kann man mit seiner Hilfe

  • sich das Leben im Umgang mit Updates vereinfachen
  • durch Betrachten des Scriptes lernen, wie sowas funktioniert
  • vielleicht sogar das Script verbessern

  • LG
    Andreas

Titel: Re:Projekt "mein swupdate Script verbessern"
Beitrag von: Chris am 09. Oktober 2019, 00:50:47

An dem Skript hab ich definitiv Interesse. Möglicherweise kann ich dann sogar was dazu beisteuern. Mal sehen. ^^

Titel: Re:Projekt "mein swupdate Script verbessern"
Beitrag von: Andreas am 09. Oktober 2019, 05:38:57

Ich möchte mindestens zwei der in meinem Thread aufgeführten Probleme automatisch lösen können. Eines geht schon - das zweite kommt bestimmt demnächst. Dann werde ich das Script hier reinstellen.


Nichtsdestotrotz ist es ein Eiertanz. Bei Microsoft und Apple sind die Automaten schon so weit fortgeschritten dass sie auch an Stellen, wo eigentlich "jemand mit gesundem Menschen- und Sachverstand" etwas entscheiden sollte, irgendwas automatisch einsetzen, was "wahrscheinlich" ist. Und genau durch sowas kommen die bekannten Updateprobleme bei diesen kommerziellen Betriebssystemen. "Wahrscheinlich" bedeutet eben "stimmt nicht immer". Es gibt dort also eine systembedingte Wahrscheinlichkeit, dass ein Update auch mal heftig in die Hose geht. Bei Linux wird eben der User gefragt. Bei kommerziellen Betriebssystemen "wird ihm diese unzumutbare Entscheidung abgenommen"...

Ich denke aber dass man mit etwas Fingerspitzengefühl die Wahrscheinlichkeit, dass mit meinem Script dann auch ein Update heftig in die Hose geht, sehr klein halten kann.

LG
Andreas

Titel: Ansatz zur Erweiterung
Beitrag von: Andreas am 11. Oktober 2019, 08:42:17

Hier mein genereller Ansatz:

Ich breche das Update in mehrere nacheinander abzuarbeitende Blöcke auf:

  • Sollte noch keine chroot-Umgebung für den User bestehen wird eine angelegt (Infos dazu gibt es hier - 2. Beitrag im Thread (https://www.suletuxe.de/forum/index.php?board=11;action=display;threadid=351))
  • Prüfung ob eine Verbindung mit dem Internet besteht
  • Holen der neuesten Standard-Repo-Paketdatenbanken mittels sudo pacman -Sy
  • Aktualisieren aus den Standard-Repos mit sudo pacman -Su --noconfirm
  • Löschen der heruntergeladenen Pakete, wenn das Update erfolgreich war, mit sudo paccache -vrk0
  • Aktualisieren aus den AURs mit yay -Sau --noconfirm --nocleanmenu --nodiffmenu --noeditmenu
  • Löschen der heruntergeladenen Quellen und eventueller Dateien, die beim Bauen erzeugt wurden - aber nur wenn das Update erfolgreich war mit yay -Sc --noconfirm

  • Die Ausgabe der Befehle wird aufgesplittet: sie wird nach wie vor auf die Konsole ausgegeben - aber zusätzlich auch in Textdateien ("Logs") umgelenkt. Wenn der Befehl mit einem Fehler beendet wurde wird das dazugehörige Log nach gewissen Schlüsselworten durchsucht, die bei Problemen auftreten (genau das was ihr bisher selbst machen solltet wenn es Probleme gibt). Wenn es einen Treffer gibt wird die dazugehörige Lösung ausprobiert (die zur Lösung notwendigen Informationen stehen nämlich auch alle im Log). Erst wenn das ebenfalls fehlschlägt soll mein Script diesen Befehl "aufgeben" - die Infos, wie es zu diesem Fehler gekommen ist, stehen aber nach wie vor im Log und bleiben dort auch - bis man swupdate erneut aufruft. Für forensische Maßnahmen sollte man also das Log vor dem erneuten Aufruf von swupdate sichern. Die Logs befinden sich hier: /tmp/upd-*.log. Und ja: es sind mehrere.

    Nach dem nächsten Update-Problem, das ich erfolgreich mit meinem Script lösen konnte, werde ich es in diesem Thread einstellen und ihr könnt es dann jeweils in aktuellster Version auf euer Arch kopieren.

    LG
    Andreas

Titel: Re:Projekt "mein swupdate Script verbessern"
Beitrag von: Andreas am 20. Dezember 2019, 17:13:09

Ich habe das Script hierhin verschoben (https://www.suletuxe.de/forum/index.php?board=11;action=display;threadid=402]hierhin verschoben]=https://www.suletuxe.de/forum/index.php?board=11;action=display;threadid=402)

LG
Andreas


Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2003, YaBB SE Dev Team. All Rights Reserved.