Snap Storedit
A snap Store lehetővé teszi a fejlesztők számára, hogy alkalmazásaikat közvetlenül a felhasználók számára tegyék közzé. A hagyományos Linux Csomagkezelési megközelítésekkel, mint például az APT vagy a YUM, az alkalmazásokat az operációs rendszer részeként csomagolják és terjesztik. Ez késleltetést okoz az alkalmazások fejlesztése és a végfelhasználók számára történő telepítése között. Ezzel szemben az alkalmazásfejlesztők közzétehetik alkalmazásaikat a Snap Store-ban, és közvetlenül eljuttathatják azokat a felhasználókhoz a disztribúciós karbantartók beavatkozása nélkül.
A Snap Store-ba feltöltött összes alkalmazás automatikus tesztelésen megy keresztül, beleértve a rosszindulatú programok vizsgálatát is. A Snap alkalmazások azonban nem kapnak ugyanolyan szintű ellenőrzést, mint a szokásos Ubuntu archívumok szoftverei. Egy esetben 2018 májusában ugyanazon fejlesztő két alkalmazásáról kiderült, hogy kriptovaluta bányászot tartalmaz, amely az alkalmazás végrehajtása során a háttérben futott. Amikor ezt a problémát megtalálták, a Canonical eltávolította az alkalmazásokat a Snap Store-ból, és átadta a Snaps tulajdonjogát egy megbízható harmadik félnek, amely újra közzétette a Snaps-t a bányász jelenléte nélkül. Bár a Snap sandbox csökkenti a rosszindulatú alkalmazások hatását, a Canonical azt javasolja a felhasználóknak, hogy csak a felhasználó által megbízott kiadóktól telepítsenek Patenteket.
mivel a snap Store-ban lévő csomagokat maguk a fejlesztők tartják karban, a disztribúciós karbantartók nem tudják biztosítani, hogy a csomagok megfeleljenek a minőségi előírásoknak, és időben frissüljenek. Az egyik esetben a Microsoft több mint egy évig elhagyta a Skype elavult verzióját a Snapcraft áruházban.
bár a Canonical Snap Store jelenleg az egyetlen létező bolt a snaps számára, maga a Snap bolt nélkül is használható. A Snap csomagok bármilyen forrásból beszerezhetők, beleértve a fejlesztő webhelyét is. A Red Hat alkalmazottja, Adam Williamson és a Linux Mint projekt vezetője, Clement Lefebre bírálta a Canonical-t, amiért a snap Store egyes szerveroldali részeit zárt forráskódban tartja. Clement kijelenti, hogy ez összeférhetetlenséget okoz, amely károsítja a snap semlegességét, mivel a Canonical fejleszti az Ubuntut.
Univerzális Linux csomagokszerkesztés
a Snaps önálló csomagok, amelyek számos Linux disztribúcióban működnek. Ez ellentétben áll a hagyományos Linux Csomagkezelési megközelítésekkel, amelyek minden Linux disztribúcióhoz külön adaptált csomagokat igényelnek.
A snap fájlformátum egyetlen tömörített fájlrendszer, amely a SquashFS formátumot használja a .snap
kiterjesztéssel. Ez a fájlrendszer tartalmazza az alkalmazást, a függvénytárakat és a deklaratív metaadatokat. Ezt a metaadatot a snapd úgy értelmezi, hogy megfelelő alakú biztonságos homokozót állítson be az adott alkalmazáshoz. A telepítés után a snap-ot a gazdagép operációs rendszere szereli fel, és a fájlok használatakor menet közben kicsomagolja. Bár ennek az az előnye, hogy a snaps kevesebb lemezterületet használ, ez azt is jelenti, hogy néhány nagy alkalmazás lassabban indul.
jelentős különbség a Snap és más Univerzális Linux csomagolási formátumok, mint például a Flatpak között, hogy a Snap támogatja a Linux alkalmazások bármely osztályát, például asztali alkalmazásokat, szerver eszközöket, IoT alkalmazásokat, sőt olyan rendszerszolgáltatásokat is, mint a nyomtató-illesztőprogram-verem. Ennek biztosítása érdekében A Snap a systemd-re támaszkodik olyan funkciókhoz, mint például a socket által aktivált rendszerszolgáltatások egy pillanat alatt történő futtatása. Ez azt eredményezi, hogy a Snap csak olyan disztribúciókon működik, amelyek ezt az init rendszert használják.
konfigurálható sandboxEdit
alkalmazások egy pillanat alatt futnak egy tárolóban, korlátozott hozzáféréssel a gazdarendszerhez. Az interfészek segítségével a felhasználók az alkalmazás által közvetített hozzáférést biztosíthatnak a gazdagép további funkcióihoz, például hangfelvételhez, USB-eszközökhöz való hozzáféréshez és videofelvételhez. Ezek az interfészek közvetítik a szokásos Linux API-kat, hogy az alkalmazások újraírás nélkül működhessenek a homokozóban. Az asztali alkalmazások használhatják az XDG asztali portálokat is, egy szabványosított API-t, amelyet eredetileg a Flatpak projekt hozott létre, hogy a homokozós asztali alkalmazások hozzáférjenek a gazdagép erőforrásaihoz. Ezek a portálok gyakran jobb felhasználói élményt nyújtanak a natív Linux API-khoz képest, mert engedélyt kérnek a felhasználótól olyan erőforrásokhoz, mint például egy webkamera, amikor az alkalmazás használja őket. Hátránya, hogy az alkalmazásokat és az eszközkészleteket újra kell írni az újabb API-k használatához.
A snap sandbox támogatja az adatok és a Unix foglalatok megosztását a Snaps között. Ezt gyakran használják közös könyvtárak és alkalmazási keretek megosztására a kattintások között, hogy csökkentsék a kattintások méretét a duplikáció elkerülésével.
A Snap sandbox nagymértékben támaszkodik az upstream Linux kernel AppArmor Linux biztonsági moduljára. Mivel egyszerre csak egy “fő” Linux biztonsági modul (LSM) lehet aktív, a Snap sandbox sokkal kevésbé biztonságos, ha egy másik fő LSM engedélyezve van. Ennek eredményeként az olyan disztribúciókon, mint A Fedora, amelyek alapértelmezés szerint engedélyezik a Selinuxot, a Snap sandbox erősen leromlott. Bár a Canonical számos más fejlesztővel és céggel dolgozik együtt annak érdekében, hogy egyszerre több LSMs is futhasson, ez a megoldás még mindig hosszú idő.
A snap sandbox megakadályozza, hogy a csattant asztali alkalmazások hozzáférjenek a gazdagép operációs rendszerének témáihoz, hogy megakadályozzák a kompatibilitási problémákat. Annak érdekében, hogy a Snaps egy témát használjon, azt is külön pillanatba kell csomagolni. Számos népszerű témát csomagolnak a Snap fejlesztők, de egyes témák még nem támogatottak, és a ritka témákat manuálisan kell telepíteni. Ha egy téma nem érhető el Snap csomagként, a felhasználóknak a rendelkezésre álló legmegfelelőbb téma kiválasztásához kell folyamodniuk. Folyamatban van a munka, hogy megkönnyítse a harmadik felek számára a témák egy pillanat alatt történő csomagolását és a nem gyakori rendszertémák automatikus telepítését.
automatikus és atomic updatesEdit
naponta többször, a snapd ellenőrzi az összes Patent elérhető frissítéseit, és az atomic operation segítségével telepíti azokat a háttérben. A frissítések visszaállíthatók, és delta kódolással csökkenthetik a letöltési méretüket.
a kiadók a csatornák használatával párhuzamosan kiadhatják és frissíthetik szoftverük több verzióját. Minden csatornának van egy meghatározott sávja és kockázata, amely jelzi az adott csatornán kiadott szoftver verzióját és stabilitását. Alkalmazás telepítésekor a Snap alapértelmezés szerint a latest/stable
csatornát használja, amely automatikusan frissül a szoftver új főbb kiadásaira, amikor azok elérhetővé válnak. A kiadók további csatornákat hozhatnak létre, amelyek lehetővé teszik a felhasználók számára, hogy ragaszkodjanak szoftverük konkrét főbb kiadásaihoz. Például egy2.0/stable
csatorna lehetővé tenné a felhasználók számára, hogy ragaszkodjanak a szoftver 2.0-s verziójához, és csak kisebb frissítéseket kapjanak a visszafelé inkompatibilis változások kockázata nélkül. Amikor a kiadó új főverziót ad ki egy új csatornán, a felhasználók manuálisan frissíthetnek a következő verzióra, amikor úgy döntenek.
bár az automatikus frissítéseket nem lehet kikapcsolni, számos módon konfigurálhatja a frissítéseket az adott igényeknek megfelelően. A felhasználó dönthet úgy, hogy a csatorna megadásával a szoftver egy adott fő verzióján marad, beállíthatja a frissítési intervallumot, hogy legyen ideje manuálisan ellenőrizni a frissítéseket, és akár 60 napig is tárolhatja a frissítéseket. Ezenkívül a frissítések automatikusan le vannak tiltva a mért kapcsolatokon is. Még ezekkel a vezérlőkkel is számos felhasználó hangot adott panaszának az automatikus frissítések Teljes kikapcsolásának lehetőségének hiánya miatt.
SnapcraftEdit
Canonical Ltd.
29 October 2015; 5 years ago
https://github.com/snapcore/snapcraft
Python
Linux, MacOS, Microsoft Windows
GPLv3
snapcraft.io
Snapcraft egy eszköz a fejlesztők csomagolni a programokat a Snap formátumban. Ez fut minden Linux disztribúció által támogatott Snap, macOS és Microsoft Windows. Snapcraft épít a csomagokat egy virtuális gép segítségével Multipass, annak érdekében, hogy az eredmény egy épít ugyanaz, függetlenül attól, hogy melyik terjesztési vagy operációs rendszer épül. A Snapcraft számos build eszközt és programozási nyelvet támogat, mint például a Go, Java, JavaScript, Python, C/C++ és Rust. Ezenkívül lehetővé teszi az alkalmazás metaadatainak importálását több forrásból, például AppStream, git, shell szkriptek és setup.py
fájlok.