Snap Storedit
Snap Store giver udviklere mulighed for at offentliggøre deres applikationer direkte til brugerne. Med traditionelle pakkehåndteringsmetoder som APT eller YUM pakkes og distribueres applikationerne som en del af operativsystemet. Dette skaber en forsinkelse mellem applikationsudvikling og dens implementering for slutbrugere. I modsætning hertil kan applikationsudviklere offentliggøre deres applikationer i Snap Store og få dem direkte til brugerne uden nogen indblanding fra distributionsholdere.
Alle apps, der uploades til Snap Store, gennemgår automatisk test, herunder en ondsindet scanning. Snap-apps modtager dog ikke det samme niveau af verifikation som programmer i de almindelige Ubuntu-arkiver. I et tilfælde i Maj 2018 viste det sig, at to applikationer fra den samme udvikler indeholdt en cryptocurrency minearbejder, der løb i baggrunden under applikationsudførelse. Da dette problem blev fundet, fjernede Canonical applikationerne fra Snap Store og overførte ejerskabet af Snaps til en betroet tredjepart, der genudgav Snaps uden den tilstedeværende minearbejder. Selvom Snap sandkassen reducerer virkningen af en ondsindet app, anbefaler Canonical, at brugerne kun installerer Snaps fra udgivere, som brugeren har tillid til.
da pakker i Snap Store vedligeholdes af udviklerne selv, kan distributionsvedligeholdere ikke sikre, at pakker opfylder kvalitetsstandarder og opdateres rettidigt. I et tilfælde efterlod Microsoft en forældet version af Skype i Snapcraft-butikken i over et år.
selvom Snap Store af Canonical i øjeblikket er den eneste eksisterende butik til snaps, kan Snap selv bruges uden en butik. Snap pakker kan fås fra enhver kilde, herunder hjemmesiden for en udvikler. Clement Lefebre har kritiseret Canonical for at holde nogle server side dele af Snap Store lukket kilde. Clement siger, at dette skaber en interessekonflikt, der skader Snap ‘ s neutralitet, da Canonical Udvikler Ubuntu.
Universal Packagesedit
Snaps er selvstændige pakker, der arbejder på tværs af en række distributioner. Dette er i modsætning til traditionelle pakkehåndteringsmetoder, som kræver specifikt tilpassede pakker til hver distribution.
snap-filformatet er et enkelt komprimeret filsystem ved hjælp af formatet med udvidelsen.snap
. Dette filsystem indeholder programmet, biblioteker det afhænger af, og deklarative metadata. Disse metadata fortolkes af snapd for at oprette en passende formet sikker sandkasse til den applikation. Efter installationen monteres snap af værtsoperativsystemet og dekomprimeres i farten, når filerne bruges. Selvom dette har den fordel, at snaps bruger mindre diskplads, betyder det også, at nogle store applikationer starter langsommere.
en væsentlig forskel mellem Snap og andre universelle emballageformater som Flatpak er, at Snap understøtter enhver klasse af applikationer som desktop-applikationer, serverværktøjer, IoT-apps og endda systemtjenester som printerdriverstakken. For at sikre dette er Snap afhængig af systemd for funktioner såsom at køre socket-aktiverede systemtjenester på et øjeblik. Dette får Snap til kun at arbejde på distributioner, der bruger dette init-system.
konfigurerbar sandkasseredit
applikationer i en Snap køre i en beholder med begrænset adgang til værtssystemet. Ved hjælp af grænseflader kan brugerne give en applikationsmedieret adgang til yderligere funktioner i værten, såsom optagelse af lyd, adgang til USB-enheder og optagelse af video. Disse grænseflader formidler almindelige API ‘ er, så applikationer kan fungere i sandkassen uden at skulle omskrives. Desktopapplikationer kan også bruge Desktopportaler, en standardiseret API, der oprindeligt blev oprettet af Flatpak-projektet for at give sandkassede desktopapplikationer adgang til værtsressourcer. Disse portaler giver ofte en bedre brugeroplevelse sammenlignet med de oprindelige API ‘ er, fordi de beder brugeren om tilladelse til ressourcer som f.eks. Ulempen er, at applikationer og værktøjssæt skal omskrives for at kunne bruge disse nyere API ‘ er.
Snap sandkassen understøtter også deling af data og stik mellem Snaps. Dette bruges ofte til at dele fælles biblioteker og applikationsrammer mellem Snaps for at reducere størrelsen på Snaps ved at undgå duplikering.
Snap sandkassen er stærkt afhængig af AppArmor-sikkerhedsmodulet fra opstrøms-kernen. Fordi kun et” større ” sikkerhedsmodul (LSM) kan være aktivt på samme tid, er Snap sandkassen meget mindre sikker, når en anden større LSM er aktiveret. Som følge heraf er Snap sandkassen stærkt nedbrudt på distributioner som Fedora, der aktiverer Selinuks som standard. Selvom Canonical arbejder sammen med mange andre udviklere og virksomheder for at gøre det muligt for flere LSM ‘ er at køre på samme tid, er denne løsning stadig lang tid væk.
Snap sandkassen forhindrer knækkede desktop-applikationer i at få adgang til temaerne i værtsoperativsystemet for at forhindre kompatibilitetsproblemer. For at Snaps skal bruge et tema, skal det også pakkes i et separat Snap. Mange populære temaer er pakket af Snap-udviklerne, men nogle temaer understøttes endnu ikke, og usædvanlige temaer skal installeres manuelt. Hvis et tema ikke er tilgængeligt som en Snap-pakke, skal brugerne ty til at vælge det bedste matchende tema, der er tilgængeligt. Der arbejdes på at gøre det lettere for tredjeparter at pakke temaer på et øjeblik og automatisk installere usædvanlige systemtemaer.
Automatic and atomic updatesEdit
flere gange om dagen kontrollerer snapd for tilgængelige opdateringer af alle Snaps og installerer dem i baggrunden ved hjælp af atomoperation. Opdateringer kan vendes og bruge delta-kodning til at reducere deres overførselsstørrelse.
udgivere kan frigive og opdatere flere versioner af deres program parallelt ved hjælp af kanaler. Hver kanal har et specifikt spor og risiko, som angiver versionen og stabiliteten af det program, der frigives på den pågældende kanal. Når du installerer et program, Snap standard brugerlatest/stable
kanal, som automatisk opdateres til nye større udgivelser af programmet, når de bliver tilgængelige. Udgivere kan oprette yderligere kanaler for at give brugerne mulighed for at holde sig til specifikke større udgivelser af deres program. For eksempel vil en 2.0/stable
kanal tillade brugere at holde sig til 2.0-versionen af programmet og kun få mindre opdateringer uden risiko for baglæns inkompatible ændringer. Når udgiveren frigiver en ny overordnet version i en ny kanal, kan brugerne manuelt opdatere til den næste version, når de vælger.
selvom automatiske opdateringer ikke kan slås fra, er der mange måder at konfigurere opdateringer, der passer til særlige behov. Brugeren kan vælge at forblive på en bestemt større version af programmet ved at angive kanalen, de kan konfigurere opdateringsintervallet for at have tid til manuelt at kontrollere opdateringer, og de kan holde opdateringer i op til 60 dage. Derudover deaktiveres opdateringer automatisk på målte forbindelser. Selv med disse kontroller har et antal brugere givet udtryk for deres klager over manglen på en mulighed for at slå automatiske opdateringer helt fra.
SnapcraftEdit
Canonical Ltd.
29 October 2015; 5 years ago
https://github.com/snapcore/snapcraft
Python
GPLv3
snapcraft.io
Snapcraft er et værktøj for udviklere at pakke deres programmer i Snap format. Det kører på enhver distribution, der understøttes af Snap, macOS og Microsoft-vinduer. Snapcraft bygger pakkerne i en virtuel maskine ved hjælp Multipass, for at sikre resultatet af en build er den samme, uanset hvilken distribution eller operativsystem det er bygget på. Snapcraft understøtter et stort antal bygge værktøjer og programmeringssprog som Go, Java, JavaScript, Python, C/C++ og Rust. Det tillader også import af applikationsmetadata fra flere kilder såsom AppStream, git, shell-scripts og setup.py
filer.