Flatpaks aktualisieren mit systemd

  Lioh Möller   Lesezeit: 4 Minuten  🗪 2 Kommentare

Neben rpm-ostree basierten Basissystemen, lassen sich auch Flatpak Pakete auf einfache Weise automatisch aktualisieren.

flatpaks aktualisieren mit systemd

Die Möglichkeit Updates mittels rpm-ostree zu automatisieren haben wir bereits beschrieben. Immutable Linux-Distributionen setzen darüber hinaus in der Regel Container Paketformate wie Flatpak ein.

GNOME Software bietet die Möglichkeit, diese ebenfalls automatisch zu aktualisieren. Für Nutzer anderer Desktopumgebungen oder Windowmanager, lässt sich dies mittels systemd realisieren.

Flatpaks können grundsätzlich systemweit oder mit der --user Option im Benutzerkontext installiert werden. Die im Folgenden beschriebene Lösung deckt beide Fälle ab. Dabei werden auch die benutzerspezifischen systemd Definitionen systemweit angelegt, und stehen so allen Nutzern des Systems zur Verfügung. Alternativ können diese im Kontext des Benutzers unter  ~/.config/systemd/user/ erstellt werden.

Zunächst werden die systemd Units zur Aktualisierung der Flatpak Pakete erstellt:

User:

/etc/systemd/user/update-user-flatpaks.service

[Unit]
Description=Update user Flatpaks

[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak --user update -y

[Install]
WantedBy=default.target
System:

/etc/systemd/system/update-system-flatpaks.service

[Unit]
Description=Update system Flatpaks
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak --system update -y

[Install]
WantedBy=multi-user.target

Daraufhin können entsprechende systemd Timer Definitionen erstellt werden, um die Aktualisierungen täglich durchzuführen:

User:

/etc/systemd/user/update-user-flatpaks.timer

[Unit]
Description=Update user Flatpaks daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

System:

/etc/systemd/system/update-system-flatpaks.timer

[Unit]
Description=Update system Flatpaks daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Abschliessend müssen diese aktiviert werden. Im Kontext des Benutzerkontos wird dazu folgender Befehl ausgeführt:

systemctl --user enable --now update-user-flatpaks.timer

Systemweit lässt sich der Timer mit Root-Rechten aktivieren:

sudo systemctl --system enable --now update-system-flatpaks.timer

Mit der beschriebenen Methode, steht ein verlässlicher Weg zur Verfügung, Linux-Systeme ohne Nutzerinteraktion aktuell zu halten. Insbesondere in Kombination mit Immutable Linux-Distributionen wie Silverblue, Kinoite oder Vauxite, kann so ein sicherer, aktueller Linux-Desktop realisiert werden, der durchaus auch für den Einsatz bei der Grossmutter geeignet sein kann.

Quelle: https://www.jwillikers.com/automate-flatpak-updates-with-systemd

Tags

Flatpak, rpm-ostree, Silverblue, Kinoite, Vauxite, immutable, Updates, systemd

UbIx
Geschrieben von UbIx am 11. August 2022 um 21:24

Top Beschreibung. Mal sehen ob sowas auch auf dem (Backup)Server mit Tumbleweed funktioniert. Werde nach Einrichtung und Urlaub mal nen Artikel schreiben.

👓
Geschrieben von 👓 am 20. August 2022 um 18:17

habe gerade wieder was gelernt dachte immer user services müssen unter ~/.config/systemd/user/ abgelegt werden.