Maybaygiare.org

Blog Network

Snap (správce balíčků)

Snap StoreEdit

Snap Store umožňuje vývojářům publikovat své aplikace přímo uživatelům. S tradičními přístupy pro správu balíků Linux, jako je APT nebo YUM, jsou aplikace baleny a distribuovány jako součást operačního systému. To vytváří zpoždění mezi vývojem aplikace a jejím nasazením pro koncové uživatele. Naproti tomu vývojáři aplikací mohou publikovat své aplikace v obchodě Snap Store a získat je přímo uživatelům bez jakéhokoli zásahu správců distribuce.

všechny aplikace nahrané do Snap Store podléhají automatickému testování, včetně kontroly malwaru. Aplikace Snap však neobdrží stejnou úroveň ověření jako software v běžných archivech Ubuntu. V jednom případě v květnu 2018 bylo zjištěno, že dvě aplikace stejného vývojáře obsahují kryptoměnného horníka, který běžel na pozadí během provádění aplikace. Když byl tento problém nalezen, Canonical odstranil aplikace z obchodu Snap a převedl vlastnictví Snaps na důvěryhodnou třetí stranu, která znovu zveřejnila Snaps bez přítomnosti horníka. Ačkoli karanténa Snap snižuje dopad škodlivé aplikace, Canonical doporučuje uživatelům instalovat pouze snímky od vydavatelů důvěryhodných uživatelem.

protože balíčky v Snap Store jsou udržovány samotnými vývojáři, správci distribuce nemohou zajistit, aby balíčky splňovaly standardy kvality a byly včas aktualizovány. V jednom případě společnost Microsoft nechala zastaralou verzi Skype v obchodě Snapcraft více než rok.

ačkoli Snap Store od Canonical je v současné době jediným existujícím úložištěm pro snaps, Snap sám může být použit bez úložiště. Balíčky Snap lze získat z jakéhokoli zdroje, včetně webových stránek vývojáře. Zaměstnanec Red Hat Adam Williamson a vedoucí projektu Linux Mint Clement Lefebre kritizovali Canonical za to, že některé části serveru Snap Store zůstaly uzavřeny. Clement uvádí, že to vytváří střet zájmů, který poškozuje neutralitu Snap vzhledem k tomu, že Canonical vyvíjí Ubuntu.

Universal Linux packagesEdit

Snaps jsou samostatné balíčky, které fungují v celé řadě linuxových distribucí. To je na rozdíl od tradičních přístupů pro správu balíčků Linuxu, které vyžadují speciálně upravené balíčky pro každou distribuci Linuxu.

Formát souboru snap je jeden komprimovaný souborový systém používající formát SquashFS s příponou .snap. Tento souborový systém obsahuje aplikaci, knihovny, na kterých závisí, a deklarativní metadata. Tato metadata jsou interpretována snapd pro nastavení vhodně tvarované zabezpečené karantény pro tuto aplikaci. Po instalaci je snap připojen hostitelským operačním systémem a při použití souborů je dekomprimován za běhu. I když to má tu výhodu, že snímky využívají méně místa na disku, znamená to také, že některé velké aplikace začínají pomaleji.

významný rozdíl mezi Snap a dalších universal Linux obalových formátů, jako jsou Flatpak je, že Snap podporuje všechny třídy Linux aplikace, jako je desktop aplikace, server nástroje, Spoustu aplikací a dokonce i služeb systému, jako jsou ovladače tiskárny zásobník. Aby to bylo zajištěno, Snap spoléhá na systemd pro funkce, jako je spuštění systémových služeb aktivovaných soketem. To způsobí, že Snap pracuje pouze na distribucích, které používají tento systém init.

konfigurovatelné sandboxEdit

aplikace v Snap běhu v kontejneru s omezeným přístupem k hostitelskému systému. Pomocí rozhraní mohou uživatelé poskytnout aplikaci zprostředkovanou přístup k dalším funkcím hostitele, jako je nahrávání zvuku, přístup k zařízením USB a nahrávání videa. Tato rozhraní zprostředkovávají běžná linuxová API, takže aplikace mohou fungovat v karanténě, aniž by bylo nutné je přepisovat. Desktop aplikace lze také použít XDG Desktop Portály, standardizované API původně vytvořen Flatpak projektu dát sandboxed desktop aplikace, přístup k hostitelské zdroje. Tyto portály často poskytují lepší uživatelský zážitek ve srovnání s nativní Linux Api, protože oni vyzve uživatele k povolení zdrojů, jako jsou webové kamery v době, kdy aplikace je používá. Nevýhodou je, že aplikace a sady nástrojů je třeba přepsat, aby bylo možné používat tato novější API.

snap sandbox také podporuje sdílení dat a unixových soketů mezi Snaps. To je často používají ke sdílení společných knihoven a aplikačních rámců mezi Zaskočí, aby se zmenšila velikost Zaskočí tím, že se zamezí zdvojování.

snap sandbox se silně spoléhá na bezpečnostní modul AppArmor Linux z předchozího jádra Linuxu. Protože současně může být aktivní pouze jeden „hlavní“ modul zabezpečení Linuxu (LSM), je sandbox Snap mnohem méně bezpečný, pokud je povolen další hlavní LSM. Výsledkem je, že na distribucích, jako je Fedora, které ve výchozím nastavení povolují SELinux, je sandbox Snap silně degradován. Ačkoli Canonical spolupracuje s mnoha dalšími vývojáři a společnostmi, aby bylo možné spustit více LSM současně, toto řešení je stále ještě dlouhá doba.

Snap pískoviště zabraňuje prasklo desktopových aplikací v přístupu k tématům z hostitelského operačního systému, aby se zabránilo problémy s kompatibilitou. Aby Snaps mohl použít motiv, musí být také zabalen do samostatného snapu. Mnoho populárních témat je zabaleno vývojáři Snap, ale některá témata ještě nejsou podporována a neobvyklá témata musí být nainstalována ručně. Pokud téma není k dispozici jako balíček Snap, uživatelé se musí uchýlit k výběru nejlepšího dostupného motivu. Probíhají práce, které třetím stranám usnadní balení témat najednou a automatickou instalaci neobvyklých systémových témat.

automatické a atomové aktualizaceedit

snapd několikrát denně kontroluje dostupné aktualizace všech snímků a nainstaluje je na pozadí pomocí atomové operace. Aktualizace lze vrátit a pomocí kódování delta snížit jejich velikost stahování.

vydavatelé mohou vydávat a aktualizovat více verzí svého softwaru paralelně pomocí kanálů. Každý kanál má specifickou stopu a riziko, které označují verzi a stabilitu softwaru vydaného na tomto kanálu. Při instalaci aplikace Snap výchozí pomocí latest/stable kanál, který se bude automaticky aktualizovat, aby nové hlavní verze softwaru, jakmile budou k dispozici. Vydavatelé mohou vytvářet další kanály, které uživatelům umožňují držet se konkrétních hlavních verzí jejich softwaru. Například kanál 2.0/stable by uživatelům umožnil držet se verze softwaru 2.0 a získat pouze drobné aktualizace bez rizika zpětně nekompatibilních změn. Když vydavatel vydá novou hlavní verzi v novém kanálu, uživatelé mohou ručně aktualizovat na další verzi, když se rozhodnou.

přestože automatické aktualizace nelze vypnout, existuje mnoho způsobů, jak nakonfigurovat aktualizace tak, aby vyhovovaly konkrétním potřebám. Uživatel si může vybrat, zda zůstane na konkrétní hlavní verzi softwaru zadáním kanálu, může nakonfigurovat interval aktualizace tak, aby měl čas na ruční kontrolu aktualizací, a mohou držet aktualizace až 60 dní. Kromě toho jsou aktualizace také automaticky zakázány na měřených připojeních. I s těmito ovládacími prvky řada uživatelů vyjádřila své stížnosti na nedostatek možnosti úplného vypnutí automatických aktualizací.

SnapcraftEdit

snapcraft

Snapcraft Logo

Developer(s)

Canonical Ltd.

Initial release

29 October 2015; 5 years ago

Stable release
4.4.2 / 13 November 2020; Před 4 měsíci

Úložiště

https://github.com/snapcore/snapcraft

Napsal:

Python

Operační systém

Linux, macOS, Microsoft Windows,

Licence

GPLv3

webové Stránky

snapcraft.io

Snapcraft je nástroj pro vývojáře balíček jejich programy v Snap formátu. Běží na jakékoli distribuci Linuxu podporované Snap, macOS a Microsoft Windows. Snapcraft staví balíčky ve Virtuálním Stroji pomocí Multipass, aby se zajistilo, výsledkem sestavení je stejný, bez ohledu na to, která distribuce nebo operační systém je postaven na. Snapcraft podporuje velké množství nástrojů pro vytváření a programovacích jazyků, jako jsou Go, Java, JavaScript, Python, C/C++ a Rust. Umožňuje také import metadat aplikací z více zdrojů, jako jsou AppStream, git, shell skripty a setup.py soubory.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.