Flatpak im Rückwärtsgang

  Ralf Hersel   Lesezeit: 4 Minuten  🗪 2 Kommentare

Wer Probleme mit einem aktuellen Flatpak hat, kann dieses auf eine beliebige vorherige Version zurückspulen.

flatpak im rückwärtsgang

Nach meinem Empfinden hat sich das Flatpak-Format in der GNU/Linux-Welt durchgesetzt. Snap-Pakete finden nur noch in der Ubuntu-Welt statt, obwohl sie bei einigen Distributionen vorhanden sind, oder ihre Unterstützung dafür im Paketmanager nachträglich installiert werden kann. Gelegentlich findet man auch noch AppImages. Die Basis aller Pakete bilden jedoch immer noch die nativen Pakete. Native Pakete und Flatpaks sind die überwiegenden Software-Quellen im Reich der Freien Software.

Der Umgang mit Flatpaks ist einfach und wird in den allermeisten Fällen vom Distro-eigenen Paketmanager geregelt; darum muss man sich nicht besonders kümmern. Wer seine Flatpaks separat pflegen möchte, kann dies mit einfachen Befehlen machen. Selbst das Zurückspulen auf ältere Versionen ist möglich. Warum das wünschenswert sein kann, lest ihr im weiteren Verlauf dieses Artikels.

Wie zuvor erwähnt, die gesonderte Steuerung von Flatpaks ist normalerweise nicht nötig, weil diese von der Paketverwaltung eurer Distribution übernommen wird. Wer dennoch direkt mit seinen Flatpaks arbeiten möchte, hat dafür ein einfaches Arsenal an Befehlen zur Verfügung. Die Eingabe des Terminal-Befehls: flatpak --help klärt auf:

  install       Eine Anwendung oder Laufzeitumgebung installieren
  update        Eine installierte Anwendung oder Laufzeitumgebung aktualisieren
  uninstall     Eine installierte Anwendung oder Laufzeitumgebung deinstallieren
  list          Installierte Anwendungen und/oder Laufzeitumgebungen auflisten
  info          Informationen zu installierter Anwendung oder Laufzeitumgebungen anzeigen
  history       Verlauf anzeigen
  repair        Flatpak-Installation reparieren

Als Beispiel soll der Befehl flatpak list --app dienen, welcher die installierten Flatpaks anzeigt, nicht jedoch alle Plattformen und das Beigemüse (das erledigt der Befehl flatpak list). Bei mir sieht das so aus:

flatpak list --app
Name                                  Anwendungskennung                         Version
SchildiChat                           chat.schildi.desktop                      1.11.13-sc.1
MarkText                              com.github.marktext.marktext              0.17.1
draw.io                               com.jgraph.drawio.desktop                 20.6.2
Erweiterungs-Manager                  com.mattjakeman.ExtensionManager          0.4.0
Spotify                               com.spotify.Client                        1.1.84.716.gc5f8b819
Upscaler                              io.gitlab.theevilskeleton.Upscaler        1.1.2
Audacity                              org.audacityteam.Audacity                 3.2.2
GNU Image Manipulation Program        org.gimp.GIMP                             2.10.32
Apostrophe                            org.gnome.gitlab.somas.Apostrophe         2.6.3
Tagger                                org.nickvision.tagger                     2022.11.2                                                                              

Angenommen ihr habt ein Problem mit einem bestimmten Flatpak (zum Beispiel Spotify) und möchtet dieses auf die letzte oder eine andere vorherige Version zurückstellen, dann geht ihr so vor.

flatpak remote-info --log flathub com.spotify.Client 

Wobei der hintere Teil des Befehls (com.spotify.Client) aus der Anwendungskennung der App aus der oben gezeigten Liste entspricht. Dann bekommt ihr eine lange Liste aller vorherigen Versionen der Anwendung angezeigt:

     Kennung: com.spotify.Client
         Ref: app/com.spotify.Client/x86_64/stable
 Architektur: x86_64
       Zweig: stable
    Sammlung: org.flathub.Stable
Herunterladen 2.9 MB
 Installiert: 7.3 MB
    Laufzeitumgebung: org.freedesktop.Platform/x86_64/22.08
         Sdk: org.freedesktop.Sdk/x86_64/22.08

      Commit: 33a8119a0b42716946ae2bb0ac43c8e34e4522b8623b9dc818bbd6576ac88194
      Parent: 0af7bc44b8d35c85568367a8f19b7930ab112f6afc4caf959cc27e5362cc1007
     Betreff: com.spotify.Client: Switch back to `dasJ/spotifywm` (b087fd38)
       Datum: 2022-11-13 23:25:50 +0000

     Verlauf: (Ralf: oben steht die aktuelle, unten folgen alle alten Versionen)

      Commit: 0af7bc44b8d35c85568367a8f19b7930ab112f6afc4caf959cc27e5362cc1007
     Betreff: com.spotify.Client: Patch `spotifywm` from `amurzeau/spotifywm` (83d21236)
       Datum: 2022-10-22 19:03:41 +0000

      Commit: 60f1d52b28a0119214e9f68401de94593ffd26dbf3c77f7402582e3f274e2fa8
     Betreff: Fix permission to gnome-settings-daemon (eb2808ea)
       Datum: 2022-10-16 01:53:58 +0000

usw.

Falls ihr nun auf die vorletzte Version von Spotify zurückspulen möchtet, kopiert ihr die Commit-ID dieser Version und die Anwendungskennung. Damit führt ihr diesen Befehl aus:

sudo flatpak update --commit=0af7bc44b8d35c85568367a8f19b7930ab112f6afc4caf959cc27e5362cc1007 com.spotify.Client

Um festzustellen, ob Spotify tatsächlich zurückgestuft wurde, reicht es leider nicht erneut den Befehl flatpak list --app einzugeben, was meiner Meinung nach ein Fehler ist. Dieser Befehl zeigt immer noch die aktuelle Versionsnummer an. Stattdessen müsst ihr flatpak update aufrufen. Dort sollte nun die aktuelle Spotify-Version erscheinen:

flatpak update
Suche nach Aktualisierungen …

        KENNUNG                     Zweig           Op          Gegenstelle          Herunterladen
 1.     com.spotify.Client          stable          u           flathub              < 180.6 MB

Nach der Bestätigung seid ihr wieder auf der aktuellen Version.

Tags

Flatpak, Pakete, Paketverwaltung, Downgrade

stoerdebegga
Geschrieben von stoerdebegga am 21. Dezember 2022 um 11:44

Hallo,

da ich vor einer Weile Probleme mit einem AnyDesk Update hatte, habe ich ebenfalls ein downgrade durchgefuehrt, allerdings sollte man danach (sofern man die aeltere Version behalten will) diese noch maskieren damit sie bei naechsten Update nicht einfach uebergebuegelt wird.

Das kann mit:

to 'mask' - prevent update

sudo flatpak mask com.anydesk.Anydesk

to 'unmask'

sudo flatpak --remove mask com.anydesk.Anydesk

Tom
Geschrieben von Tom am 21. Dezember 2022 um 12:26

Bei aller Begeisterung des Autors für Flatpak. Software muss für jeden Anwender einzeln installiert und konfiguriert werden. Damit ist das Prinzip Flatpak im Unternehmenseinsatz auf z.B. Thinclients mit wechselnden Mitarbeitern oder auf einem zentralen Linux-Terminal-Server komplett ungeeignet.