Automatische Updates

Automatische Updates

Es gibt bei Archlinux oft mehrmals am Tag neue Pakete. Wenn man sieht, dass das System Updates anzeigt, ist man versucht diese sofort zu installieren. Das artet aber in eine Fleissarbeit aus, wenn man das jeden Tag bis zu 3 mal macht.

Aber es gibt ja ein einfaches Tool um das zu bewerkstelligen, zumindest für Archlinux Systeme.

 

 

Automatische Pacman-Aktualisierung

Das Tool aktualisiert das System stündlich.

Updates werden unter ungünstigen Bedingungen automatisch verschoben:

  • wenn der Akku zu weniger als 90 % aufgeladen ist.
  • wenn der networkmanager aktiv ist und die Verbindung als getaktet angenommen wird.
  • wenn die Paketdatenbank eine Sperre hat, die jünger als ein Tag und älter als die Startzeit ist. Andernfalls wird die Sperre automatisch entfernt.

 

Installation

Das Paket "pacman-auto-update" ist im Arch User Repository verfügbar:

https://aur.archlinux.org/packages/pacman-auto-update

 

Status prüfen

Es gibt 2 Systemdienste die automatisch gestartet werden, wenn das Tool installiert ist. Man kann kontrollieren ob diese Dienste funktionieren:

$ systemctl status pacman-auto-update

$ systemctl list-timers pacman-auto-update

 

 

Anleitung Auto-Update ohne das Tool:

Zum Verständnis wie das Tool funktioniert hier die Anleitung wie es ohne das Tool eingerichtet wird:

 

Aktualisierung über systemd Timer

 

Zuerst legt man einen Service an. Der Service automatisiert die Updates die man normalerweise von Hand mit dem Paket-Manager pacman macht. Der Befehl für die Ausführung in der Konsole lautet:

$ sudo pacman -Syu

 

Ein Timer wird nach dem Hochfahren des Systems gestartet. Dieser Timer starten den Service alle 60 Minuten.

 

Um das einzubauen, muss man zwei Dateien anlegen.

 

Die erste Datei «autoupdate.service» erstellt man für den Service im Verzeichnis:

/etc/systemd/system/

Die Datei bekommt folgenden Inhalt:

[Unit]

Description=Automatic Update

After=network-online.target

 

[Service]

Type=simple

ExecStart=/usr/bin/pacman -Syuq --noconfirm

TimeoutStopSec=180

KillMode=process

KillSignal=SIGINT

 

[Install]

WantedBy=multi-user.target

 

 

 

Die zweite Datei «autoupdate.timer» erstellt man im Verzeichnis:

/etc/systemd/system/

 

Die Datei bekommt folgenden Inhalt:

[Unit]

Description=Automatic Update when booted up after 5 minutes then check the system for updates every 60 minutes

 

[Timer]

OnBootSec=5min

OnUnitActiveSec=60min

Unit=autoupdate.service

 

[Install]

WantedBy=multi-user.target

Danach muss der Dienst aktiviert werden mit dem Befehl

$ systemctl enable autoupdate.service

Dann muss auch der Timer aktiviert werden mit dem Befehl:

$ systemctl enable --now /etc/systemd/system/autoupdate.timer

Am Schluss kann man prüfen ob alles funktioniert

Ob der Dienst läuft sieht man mit dem Befehl:

$ systemctl status autoupdate.service

Eine Prüfung ob der Timer gestartet wurde kann man wie folgt durchführen:

$ journalctl -u autoupdate.timer

Wenn man schauen möchte, welche Timer im System laufen und wann diese wieder gestartet werden, dann ist der folgende Befehl interessant.

systemctl list-timers

Wenn alles korrekt läuft könnt ihr im Protokoll von pacman unter /var/log/pacman.log sehen, dass jede Stunde einen Prüfung ggf. auch eine Aktualisierung gab:

[2020-01-25T16:28:40+0000] [PACMAN] synchronizing package lists

[2020-01-25T16:28:41+0000] [PACMAN] starting full system upgrade

[2020-01-25T16:28:43+0000] [ALPM] transaction started

[2020-01-25T16:28:43+0000] [ALPM] upgraded python (3.8.1-3 -> 3.8.1-4)

[2020-01-25T16:28:43+0000] [ALPM] upgraded python-six (1.13.0-2 -> 1.14.0-1)

[2020-01-25T16:28:43+0000] [ALPM] transaction completed

[2020-01-25T16:28:43+0000] [ALPM] running '30-systemd-update.hook'...

[2020-01-25T17:28:40+0000] [PACMAN] Running '/usr/bin/pacman -Syuq --noconfirm'

[2020-01-25T17:28:40+0000] [PACMAN] synchronizing package lists

[2020-01-25T17:28:41+0000] [PACMAN] starting full system upgrade

[2020-01-25T18:28:50+0000] [PACMAN] Running '/usr/bin/pacman -Syuq --noconfirm'

[2020-01-25T18:28:50+0000] [PACMAN] synchronizing package lists

[2020-01-25T18:28:51+0000] [PACMAN] starting full system upgrade

[2020-01-25T19:29:01+0000] [PACMAN] Running '/usr/bin/pacman -Syuq --noconfirm'

[2020-01-25T19:29:01+0000] [PACMAN] synchronizing package lists

[2020-01-25T19:29:02+0000] [PACMAN] starting full system upgrade

Automatische Updates

Mehr Videos findet man auf meinem Youtube Kanal linuxcoach:
https://www.youtube.com/@linuxcoach

Ein weiterer Interessanter Artikel zu diesem Thema:
https://computer-experte.ch/endeavouros-welcome-app/