7. November 2023
Linux Flatpaks I - intro
– Linux, er det ikke for nørder?
Det udsagn var sandt engang. Men i de senere år har Open Source-miljøet virkelig lagt sig i selen for at skabe bedre produkter, der kan bruges af alle. Det er derfor blevet nemmere og nemmere at finde sig godt til rette i miljøet.
Brugere henter deres Flatpaks via deres Linux-distributions softwarecenter eller via Flathub. Alle afhængigheder, dvs. underlæggende funktionsbiblioteker er allerede en del af pakken, man henter. Det løser en del af de problemer, man traditionelt har haft med Linux-pakkeformater. Det har dog den pris, at Flatpaks fylder mere end de gamle formater, men det er et ganske lille trade-off efter min mening.
Flatpak-projektet er særdeles spændende, fordi det viser styrken, når man kombinerer forskellige FOSS-projekter til noget helt nyt. Overordnet er Flatpaks et softwaredistributionsformat, og består konceptuelt bl.a. af: OSTree, Bubblewrap, D-Bus, og AppStream.
libostree, tidl. OSTree er en slags versionskontrol for apps, hvor Git er det for kode. Det betyder, at en app får sin egen placering i et repository, der gør opgradering og rollbacks simple.
Bubblewrap-projektet er et containerformat, der har til formål at lave en “sandkasse”, din app kan leve i. Din app får sit eget virtuelle filsystem, som den kan boltre sig med, og ser kun din harddisks ægte filsystem i sin helhed, hvis du giver lov. Fra et sikkerhedsperspektiv giver det rigtig god mening at være så restriktiv som muligt, fordi man helst ikke vil have, at en app kan lave unoder i andre dele af systemet. De afhængigheder som en app har, bliver derfor pakket med ned i container-formatet.
D-Bus — Desktop Bus — giver to (eller flere) apps adgang til at kommunikere med hinanden, eller sørger for, at en app kan kommunikere med kernen eller kørende processer.
AppStream er et distro-neutralt bibliotek over metadata, der følger apps. I dette tilfælde er denne form for metadata det tekst- og billedmateriale, du ser, når du åbner din distros softwarecenter.
Over det næste stykke tid vil jeg prøve at udforske Flatpaks… Ikke fra et brugersynspunkt, men fra et udvikler/maintainer-perspektiv. Det ved jeg allerede nu, vil være enormt lærerigt for mig, og jeg glæder mig til at dele mine opdagelser med dig. -
Del 2 er klar! Linux Flatpaks II: Byg en Flatpak
Links:
https://flatpak.org/
Flathub
Flatseal - frontend til administration af Flatpak-tilladelser
Flatpak - a technical walkthrough
Flatpaks Explained