O žádném takovém nezávislém srovnání nevím. Osobně se domnívám, že to není jednoznačné. Nespornou bezpečnostní výhodou Snapu patří možnost snadno instalovat citlivé software jako izolovaný sandbox, což u serverového software nebo obecně negrafických aplikací Flatpak neumožňuje. Příklady viz Nextcloud, Postgres, openHAB atd. Dále je izolace u Snapu těsnější, než u Flatpaku.
Naopak výhoda Flatpaku je, že umožňuje jemné nastavení oprávnění a sandboxu jednotlivých aplikací, což ve Snapu nejde. Navíc Flatpak umožňuje lepší a snažší kontrolu nad aktualizacemi jednotlivých balíků. Ve Snapu se aktualizace provédějí v podstatě samovolně a to může být problém.
Z hlediska funkčnosti pro uživatele má Flatpak nespornou výhodu v tom, že dovoluje i neprivilegovaným uživatelům, aby si instalovali vlatsní aplikace, a možnost "přenosných" instalací. Pro vývojáře a baliče mi zase snap připadá snažší, byť otravnější.
nejsem moc příznivcem snapu, vadí mi, že se chlubí bezpečností, přitom to je obal nad cgroups, apparmor a seccomp, řeší hlavně OS level isolation (jaký je český překlad) a neřeší izolaci HW, stejně tak neřeší co je obsahem samotného snapu nebo nepoužívá namespaces.
Vadí mi, že navozuje milný dojem a neřeší ty temnější části. Bere s sebou nevýhodu neprůhledných aktualizací a dalšího stromu závislostí, které je nutné někým udržovat.
Rozumím kam s tím Ubuntu míří, pro uživatele s desktopem to je pokrok, pro mě spíše překážka.
Já bych ještě doplnil, že v mnoha distribucích je sandbox Snapu úplně vypnutý, takže aplikace nejsou izolované nijak. Lidi z Canonicalu nám slibovali už před 5 lety, že to ve Fedoře vyřeší, a doteď to není a myslím si, že už asi ani nikdy nebude.
Navrhovali to jako distribuční formát pro Ubuntu, pak to z toho udělali multidistribuční formát, aby podpořili adopci vývojáři aplikací, to se moc nechytlo, tak teď to zase postupně směřuje k tomu, že to bude jen pro Ubuntu.
aj, to je pěkný facepalm, vím, že snap podporuje i RH distribuce, ale naprosto jsem netušil, že vlastně jen na půl a všechna ta povídání v dokumentace kolem bezpečnosti tam nejedou.
Díky za info, to mě ani nenapadlo testovat. Naštěstí je zaměří primárně na uživatele a nás z headless serverů to nechává klidný.
mozna je to o tom ze Fedora ma specialni pozadavky, protoze treba na Arch Wiki: https://wiki.archlinux.org/title/Snap vidim:
Snaps can be confined using AppArmor which is now enabled in the default kernel. Consult relevant wiki pages to find steps for enabling AppArmor in your system.
na https://wiki.archlinux.org/title/AppArmor pak:
Ubuntu, SUSE and a number of other distributions use it by default. RHEL (and its variants) use SELinux which requires good userspace integration to work properly.
My nemáme speciální požadavky, my prostě používáme SELinux. Ale i to se dá řešit, lidi z Canonicalu nám předložili plán, jak to vyřešit, ale bohužel zůstalo jen u něj. Co jsem slyšel, tak v Snap týmu byly tyhle věci deprioritizované. Mají teď prostě jiné priority, než pracovat na tom, aby snap fungoval dobře v jiných distribucích. Nemám jim to za zlé, nakonec není to charita, ale byznys, který si na sebe musí vydělat.
Tak ono to není v "mnoha" distribucích, ono je to prostě v Red Hat distribucích, protože jak říkáte, ty používají SELinux a ne AppArmor. Na druhou stranu tady platí obecné pravidlo open source: když někdo něco chce, je na něm, aby se postaral, že se to implementuje. Neboli Red Hat klidně mohl podporu SELinuxu pro snap implementovat sám. Taky vám nijak nevytýkám, že jste to neudělali, máte jiné priority, ale je přece jenom licoměrné v tom případě vinit Canonical.
SELinux nepoužívají jenom naše distribuce. Pokud navrhuji multidistribuční formát, který má fungovat pokud možno všude, navrhnu ho tak, aby používal technologie, které jsou opravdu všude. My jsme si taky původně hráli s myšlenkou, že budeme ve Flatpaku používat SELinux, ale nepoužili jsme ho právě proto, že řada distribucí ho nepoužívá. BTW ono to nebylo jen o SELinuxu, několik let se čekalo i na to, až se dostanou patche pro AppArmor, které Snap vyžaduje, do mainline Linuxu.
Jinak máte pravdu, že je to primárně o motivaci, ale pokud chcete dostat něco do distribuce, tak je primárně na vás, abyste se přizpůsobil distribuci, ne distribuce vám. Snad nepovažujete za rozumné, aby distribuce kvůli jednomu novému balíčku kompletně změnila security model, který používá 20 let. Když jsme Flatpak dělali, tak jsme se my snažili, aby výborně fungoval v Ubuntu. Alex sám spravoval PPA s nejnovější verzí, přizpůsobovat se feedbacku, když to šlo v Debianu přes review, rozhodně jsme nečekali, že by pro nás ostatní distribuce dělaly zásadní ústupky v tom, jak věci dělají.
S názorem, že se mají používat jenom funkcionality, které jsou opravdu všude, celkem nesouhlasím. Je to ta stará redukce na nejmenšího možného jmenovatele, která dlouho držela vývoj zpátky a ve velké míře ho stále ještě drží (i když už naštěstí aspoň není "zakázané" používat moderní featury linuxového jádra, a ne se nábožně držet POSIXu).
Jinak ale nikdo samozřejmě po Red Hatu nechce, aby změnil bezpečnostní model. Jde o to, že přizpůsobení snapu bezpečnostnímu modelu Red Hatu nemusel nutně dělat automaticky Canonical, mohl to udělat i Red Hat. Nemyslím si totiž, že Canonicalu někdy nějak kór šlo o to, aby snap fungoval i v ostatních distrech. Koneckonců jde o přidanou hodnotu jejich vlastní distribuce. Ale kdybyste to vy v Red Hatu byli implementovali, byl by to přínos pro uživatele vašich dister, protože by pak mohli snadno používat hodnotné software jako např. LXD, které se distribuuje formou snapu a oficiálně dneska na RH distribucích není podporované vůbec (neoficiálně/nepodporovaně to jde do jisté míry, ale je to hrozný opruz).
S názorem, že se mají používat jenom funkcionality, které jsou opravdu všude, celkem nesouhlasím.
No, s tím samozřejmě nemusíte souhlasit, ale to je realita multidistribučních řešení. Čím víc to postavíte na věcech, které nejsou samozřejmostí v každé aspoň trochu nové distribuci, tím větší problémy potom budete mít.
Ale kdybyste to vy v Red Hatu byli implementovali, byl by to přínos pro uživatele vašich dister, protože by pak mohli snadno používat hodnotné software jako např. LXD, které se distribuuje formou snapu a oficiálně dneska na RH distribucích není podporované vůbec
To je pěkné, ale my opravdu nemáme vývojáře, kteří jen čekají, až někdo s něčím dojde, aby s tím pohnuli a dostali to v požadované kvalitě do distra. Víte, kolik takových věcí dnes je? Kdybyste viděl naše issue trackery... Když kernel přešel na cgroups2, tak Docker šel (dočasně) z Fedory, protože prostě nemáme zdroje na to, abychom tomu projektu pomáhali je implementovat. A to Docker je významem úplně někde jinde než LXD. Realizovat můžeme tak 2 věci z 10, které by se nám líbilo udělat. A takhle to mají ve všech distribucích, práce je hromada. Nikde vás nečekají s otevřenou náručí, že to dodělají za vás. Buď to udělá sám autor nebo někdo z komunity, komu záleží na tom, aby to v distru bylo. U Snapu ve Fedoře nakonec neplatilo ani jedno.
Nemyslím si totiž, že Canonicalu někdy nějak kór šlo o to, aby snap fungoval i v ostatních distrech.
Původně jim o to nešlo. Pak ale zjistili, že pokud má Snap uspět, nemůže být Ubuntu only, a začali podporu napříč distribucemi hodně řešit. Objíždět konference, přesvědčovat, slibovat. Zjistili ale, že to udržování kvalitní podpory v jiných distribucích je dost obtížné, protože původní návrh na to moc nebral ohled, a taky celkově přijetí v linuxové komunitě bylo chladné kvůli věcem jako proprietární distribuční kanál a CLA, tak ta podpora ostatních distribucí šla na druhou kolej, což jak už jsem psal, jim nemám za zlé. Je to prostě byznys a teď se jim spíš vrátí prostředky, které vloží do snapu pro IoT přímo na Ubuntu.