Flathub is dé plaats waar je flatpaks vindt; momenteel zijn er bijna 2000 flatpaks beschikbaar. Het is echter niet de enige plaats en Flatpak kan perfect met verschillende repository’s voor flatpaks tegelijk werken. Die repository’s worden door Flatpak remotes genoemd. Op een Linux-distributie met Flatpak is het geen uitzondering dat er verschillende remotes actief zijn.
Zo verspreidt Fedora een honderdtal flatpaks in zijn eigen remote, met als doel dat gebruikers de nieuwste versies van Fedora-toepassingen kunnen draaien zonder dat ze hun Fedora-installatie hoeven te upgraden. De flatpaks in deze remote worden dan ook gebouwd op basis van bestaande rpm-pakketten voor Fedora. Fedora verspreidt ook alleen opensourcesoftware in deze remote, terwijl Flathub ook propriëtaire software bevat. Alle flatpaks van de Fedora Flatpaks-remote gebruiken een van de Fedora-runtimes.
Je eigen Flatpak-repository opzetten is vrij eenvoudig, omdat er in tegenstelling tot bij de Snap Store geen nauwe integratie met andere achterliggende software is. Met flat-manager host en beheer je een flatpak-repository. Flathub maakt hier ook gebruik van. Flatpak-clients downloaden de flatpaks eenvoudigweg over HTTP van de website en er is ook een HTTP-api om nieuwe builds van je software naar de repository te uploaden.
/i/2005430304.png?f=imagenormal)
Desktop en server
Zowel Flatpak als Snap is Linux-specifiek. Ze maken gebruik van specifieke functionaliteit van de Linux-kernel, zoals bind mounts, namespaces en seccomp om de sandbox te creëren waarin de software draait. Ze werken dus niet op andere Unix-achtige besturingssystemen, zoals FreeBSD. Snap heeft zelfs nog een extra vereiste; het hangt af van systemd en werkt dus niet op Linux-distributies die een ander init-systeem gebruiken. Bovendien moet zoals we al zagen, de AppArmor-kernelmodule geladen zijn om een snap in te perken.
Flatpak vereist geen systemd of AppArmor, maar heeft dan weer een andere beperking. Omdat het is ontwikkeld om in een desktopsessie te draaien, maakt het gebruik van de D-Bus-sessiebus. Hoewel je flatpak-pakketten op een server kunt bouwen, is het formaat dus niet geschikt om serversoftware te packagen. Snaps hebben die beperking niet. Canonical heeft zelfs een serverbesturingssysteem voor iot-toepassingen ontwikkeld dat volledig op basis van snaps is opgebouwd: Ubuntu Core. Daarin wordt zelfs de Linux-kernel als een snap verspreid. En het OpenPrinting-project werkt aan een volledige printerstack met CUPS in een snap.
Een ander verschil zijn de automatische updates. Snapd controleert vier keer per dag of er updates zijn voor de geïnstalleerde snaps. Bij deze refresh worden beschikbare updates geïnstalleerd. Deze automatische updates kun je niet uitschakelen, maar je kunt wel instellen op welke tijdstippen ze mogen gebeuren en je kunt ze tot 90 dagen uitstellen. Flatpaks worden niet automatisch bijgewerkt, zodat je daar meer controle over hebt.
/i/2005430306.png?f=imagenormal)