• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Leap 16 - Updates automatisieren

Hallo zusammen,

ich habe bei einem guten Freund letztes Jahr den Rechner von Win 10 auf Leap 15.6 umgestellt. Er ist auch sehr zufrieden und alles läuft so wie er es braucht.. Ich meine das System so konfiguriert zu haben, dass die Updates automatisch eingespielt werden (Online-Aktualisierung in YAST).
Wichtig ist mir an der Stelle, dass die Software auf dem aktuellen Stand bleibt, um Sicherheitslücken zu vermeiden.
Bei meinem eigenen System habe ich das tatsächlich auch gerne selber unter Kontrolle, spiele aber eigentlich immer alle Updates ein. Bisher ist da auch noch nie etwas schiefgegangen (und ich mache das auch schon mindestens 20 Jahre so). Meinem Freund möchte ich das allerdings ungern zumuten, da er von Computern eigentlich keine Ahnung hat.
Daher stellt sich mir die Frage nach der Automatisierung. Geht das irgendwie über eine zypper-Konfiguration? Oder direkt über rpm?
(Meine Fähigkeiten so etwas selbst zu programmieren tendieren leider gegen Null...)

Viele Grüße aus Köln!
 
Vermutlich dürfte ein Shell-Script, das beispielsweise im Autostart liegt, die einfachste Lösung sein.

Ich würde hier einfach ein Shell-Script erstellen (Textdatei mit Endung sh statt txt) mit folgendem Inhalt, dann die Datei ausführbar machen und in den Einstellungen dem Autostart hinzufügen.

Code:
#!/bin/bash

zypper up --allow-vendor-change
 
Kalle hat eines geschrieben, welches ca. 10 Minuten nach dem Hochfahren des Rechners ausgeführt wird.

Er hat dann auch noch Abfragen eingefügt, die das Script in einer Datei mit Fehlermeldung schreibt.

Läuft über systemd und timer.

Autostart wäre mir zu früh.
 
Zuletzt bearbeitet:

susejunky

Moderator
Teammitglied
Ich würde hier einfach ein Shell-Script erstellen (Textdatei mit Endung sh statt txt) mit folgendem Inhalt, dann die Datei ausführbar machen und in den Einstellungen dem Autostart hinzufügen.

Code:
#!/bin/bash

zypper up --allow-vendor-change
Das --allow-vendor-change kann zu "recht lustigen" Effekten führen.

Beispiel:

Wenn man Packman verwendet (um ffmpeg mit den nicht-freien Codecs zu erhalten) und die Packman-Pakete zum Zeitpunkt der Skript-Ausführung noch nicht verfügbar sind (was gelegentlich vorkommen kann), dann führt die Verwendung von --allow-vendor-change dazu, dass automatisch die openSUSE-Version der Pakete eingespielt wird (womit nur noch die freien Codecs verfügbar sind).

Unbeaufsichtigte Systemaktualisierungen halte ich grundsätzlich (d.h. auch ohne --allow-vendor-change) für eine schlechte Idee. Alle von mir betreuten Systeme werden nur unter Aufsicht (ggf. remote) aktualisiert.
 
Bei weiterer Überlegung würde das Script so auch nicht funktionieren, da bei der Ausführung immer noch die Abfrage kommt, ob man die Vorschläge so übernehmen möchte. Ansonsten hätte man noch das n-Flag einfügen müssen.
Auch ich mache keine unattended Updates; ich habe dafür die Konsole im Autostart und kann mit 2-3 Tastenschlägen und einmal PW meine Updates abrufen. Und auch bei --allow-vendor-change werde ich vorgewarnt, wenn das Packman-Repo nicht da ist. Dann sehe entweder viele Dateien die gelöscht werden sollen oder die Meldung, dass Paket xy den Vendor wechselt.

Aber gut, vielleicht ist es tatsächlich nicht die allerbeste Idee, einem Neuling --allow-vendor-change zu empfehlen.

Was ich dem TE aber auf jeden Fall empfehlen kann ( weil er ja schrieb, dass seine Programmierkenntnisse gegen Null tendieren), sich mit der Thematik einfach mal etwas näher zu befassen. Es gibt nichts, was man nicht lernen kann, und gerade heute in Zeiten von KI wird es einem doch recht leicht gemacht. Früher musste man sich stundenlang durch zum Teil uralte Forenbeiträge kämpfen; heute wird einem die Lösung auf einem Silbertablett präsentiert.
 
Kalle hat eines geschrieben, welches ca. 10 Minuten nach dem Hochfahren des Rechners ausgeführt wird.

Er hat dann auch noch Abfragen eingefügt, die das Script in einer Datei mit Fehlermeldung schreibt.

Läuft über systemd und timer.

Autostart wäre mir zu früh.
Vielen Dank für den Hinweis aber welcher Kalle ist gemeint? Würde er das Script zur Verfügung stellen? Wenn ja, wo?
Interessant finde ich insbesondere das Logfile mit eventuellen Fehlermeldungen, das bekomme ich so bestimmt nicht hin, selbst wenn ich mich intensiv mit systemd und timer beschäftige (den Gedanken hatte ich auch schon...).

Autostart fände ich auch etwas verfrüht...

Viele Grüße aus Köln
 
Vielen Dank für den Hinweis aber welcher Kalle ist gemeint? Würde er das Script zur Verfügung stellen? Wenn ja, wo?
Kalle ist leider verstorben.

Aber das Script kann ich hier veröffentlichen:
Code:
#!/bin/bash

LANG=C


# Wait until all running Packagekit (which should already be uninstalled) have finisehd.
#sleep $((60*20))


eval 1>>/var/log/tumbleweed-update.log
eval 2>>/var/log/tumbleweed-update.err.log

/bin/logger -t TUMBLEWEED-UPDATE "update beginnt: $(/bin/date +%Y_%m_%d--%H_%M)"


/bin/cat >>  /var/log/tumbleweed-update.log <<<--------------------------------------------------------------------


/bin/date +%Y_%m_%d--%H_%M >>  /var/log/tumbleweed-update.log

/bin/zypper dup -l -y --allow-vendor-change --allow-downgrade >/dev/null 2>/dev/null


rc=$?
#rc=5

if (( $rc == 0 )); then
    /bin/logger -t TUMBLEWEED-UPDATE "OK Tumbleweed-update mit Returncode $rc beendet"
else
    /usr/local/bin/konsolen_mail    >/dev/null 2>/dev/null  
    /bin/logger -t TUMBLEWEED-UPDATE "ERROR Tumbleweed-update mit Returncode $rc beendet"
fi  


/bin/logger -t TUMBLEWEED-UPDATE "update beendet: $(/bin/date +%Y_%m_%d--%H_%M)"
Musst du dann evtl. an Leap anpassen....
Da braucht es nur einen service sowie den dazu passenden timer.
 
Und ganz vergessen:
Du solltest auch Zugriff auf den Rechner per ssh haben, denn wenn das Update mit einer Fehlermeldung aussteigt, was ist dann?

Dann stellt sich noch die Frage: Ist das ein Laptop oder stationärer Rechner?
Wie willst du bei einem Laptop zugreifen, wenn der in einem anderen Netz ist?
Stichwort dynamischer DNS?
 
Das Kalle verstorben ist tut mir leid, aber vielen Dank für das Script!

Ich werde mich damit beschäftigen und dann Rückmeldung geben, ggf. rückfragen. In der c't war neulich auch nochmal ein Artikel über systemd und timer, ich glaube den und den Kofler werde ich wohl konsultieren müssen.
Bei Änderungen poste ich das angepasste Script hier, das ist für mich am einfachsten, da ich kein Git habe und mich damit eben auch nicht auskenne. Ich hoffe, das ist in Ordnung.

Es handelt sich hier um einen Laptop, den mein Kumpel auch nicht allzu viel nutzt. Wenn er ein Problem hat, dann sagt er Bescheid, er wohnt direkt um die Ecke. Im Zweifel kann er auch ein paar Tage auf den Rechner verzichten und ihn bei mir abgeben. Ich möchte halt nur, dass das Ding auf dem aktuellen Stand bleibt, um ein gewisses Sicherheitsgefühl einerseits zu haben und andererseits zu vermitteln.

Nochmals: Vielen Dank!
 
Oben