Snap StoreEdit
Snap Store lar utviklere publisere sine programmer direkte til brukere. Med tradisjonelle Linux pakkehåndteringsmetoder som APT eller YUM, blir applikasjonene pakket og distribuert som en del av operativsystemet. Dette skaper en forsinkelse mellom applikasjonsutvikling og distribusjon for sluttbrukere. I motsetning til dette kan applikasjonsutviklere publisere sine applikasjoner i Snap Store og få dem direkte til brukere uten inngrep fra distribusjonsholdere.
alle apper som lastes opp Til Snap Store, gjennomgår automatisk testing, inkludert en skanning av skadelig programvare. Snap apps mottar imidlertid ikke samme verifikasjonsnivå som programvare i de vanlige Ubuntu-arkivene. I Ett tilfelle I Mai 2018 ble to applikasjoner av samme utvikler funnet å inneholde en cryptocurrency miner som kjørte i bakgrunnen under applikasjonsutførelse. Når dette problemet ble funnet, Fjernet Canonical programmene fra Snap Store og overførte eierskapet Til Snaps til en pålitelig tredjepart som re-publiserte Snaps uten miner til stede. Selv Om Snap sandbox reduserer virkningen av en skadelig app, Anbefaler Canonical at brukere bare installerer Snaps fra utgivere som er klarert av brukeren.fordi pakker i Snap Store vedlikeholdes av utviklerne selv, kan ikke distribusjonsholdere sikre at pakkene oppfyller kvalitetsstandarder og oppdateres i tide. I ett tilfelle forlot Microsoft en utdatert versjon Av Skype i Snapcraft-butikken i over et år.Selv Om Snap Store av Canonical for øyeblikket er den eneste eksisterende butikken for snaps, Kan Snap selv brukes uten butikk. Snap-pakker kan fås fra hvilken som helst kilde, inkludert nettsiden til en utvikler. Red Hat ansatt Adam Williamson Og Linux Mint prosjektleder Clement Lefebre har kritisert Canonical for å holde noen server side deler Av Snap Store lukket kilde. Clement sier at dette skaper en interessekonflikt som skader nøytraliteten Til Snap gitt At Canonical utvikler Ubuntu.
Universal Linux packagesEdit
Snaps er selvstendige pakker som fungerer på Tvers Av En rekke Linux-distribusjoner. Dette er i motsetning til tradisjonelle Linux pakkehåndteringsmetoder, som krever spesielt tilpassede pakker for Hver Linux-distribusjon.
snap-filformatet er et enkelt komprimert filsystem som bruker SquashFS-formatet med utvidelsen .snap
. Dette filsystemet inneholder programmet, biblioteker det avhenger av, og deklarative metadata. Denne metadataen tolkes av snapd for å sette opp en passende formet sikker sandkasse for det programmet. Etter installasjonen er snap montert av vertsoperativsystemet og dekomprimert i fly når filene brukes. Selv om dette har fordelen at snaps bruker mindre diskplass, betyr det også at noen store programmer starter langsommere.en betydelig forskjell Mellom Snap og andre Universelle Linux-emballasjeformater som Flatpak er At Snap støtter Alle Typer Linux-applikasjoner, for eksempel skrivebordsprogrammer, serververktøy, IoT-apper og til og med systemtjenester som skriverdriverstakken. For å sikre Dette, Er Snap avhengig av systemd for funksjoner som kjører socket-aktiverte systemtjenester på Et Blunk. Dette fører Til At Snap bare fungerer på distribusjoner som bruker dette init-systemet.
Konfigurerbar sandboxEdit
Programmer på Et Blunk kjøre i en beholder med begrenset tilgang til vertssystemet. Ved Hjelp Av Grensesnitt Kan Brukerne gi et programmediert tilgang til flere funksjoner i verten, for eksempel å ta opp lyd, få TILGANG TIL USB-enheter og ta opp video. Disse grensesnittene formidler vanlige Linux-Apier slik at applikasjoner kan fungere i sandkassen uten å måtte omskrives. Skrivebordsprogrammer kan også bruke Xdg Desktop Portals, en standardisert API som Opprinnelig ble opprettet av Flatpak-prosjektet for å gi sandkasserte skrivebordsprogrammer tilgang til vertsressurser. Disse portalene gir ofte en bedre brukeropplevelse sammenlignet Med De opprinnelige Linux-Apiene fordi de ber brukeren om tillatelse til ressurser som et webkamera når programmet bruker dem. Ulempen er at applikasjoner og verktøysett må omskrives for å kunne bruke disse nyere Apiene.Snap sandbox støtter også deling av data og Unix-kontakter mellom Snaps. Dette brukes ofte til å dele felles biblioteker og programrammer mellom Snaps for å redusere Størrelsen På Snaps ved å unngå duplisering.
Snap-sandkassen er avhengig av AppArmor Linux – Sikkerhetsmodulen fra Oppstrøms Linux-kjernen. Fordi bare en «major» Linux Security Module (LSM) kan være aktiv samtidig, Er Snap sandbox mye mindre sikker når en annen stor LSM er aktivert. Som et resultat, på distribusjoner som Fedora som aktiverer SELinux som standard, Er Snap sandbox tungt degradert. Selv Om Canonical jobber med mange andre utviklere og selskaper for å gjøre det mulig for flere LSMs å kjøre samtidig, er denne løsningen fortsatt lang tid unna.
Snap-sandkassen forhindrer at skrivebordsprogrammer får tilgang til temaene i vertsoperativsystemet for å forhindre kompatibilitetsproblemer. For At Snaps skal bruke et tema, må det også pakkes i et eget Snap. Mange populære temaer er pakket Av Snap-utviklerne, men noen temaer støttes ikke ennå, og uvanlige temaer må installeres manuelt. Hvis et tema ikke er tilgjengelig Som En Snap-pakke, må brukerne ty til å velge det beste matchende temaet som er tilgjengelig. Arbeidet pågår for å gjøre det enklere for tredjeparter å pakke temaer på Et Blunk og automatisk installere uvanlig system temaer.
Automatiske og atomic updatesEdit
flere ganger Om dagen, snapd sjekker for tilgjengelige oppdateringer av Alle Snaps og installerer dem i bakgrunnen ved hjelp av atom drift. Oppdateringer kan tilbakestilles og bruke delta-koding for å redusere nedlastingsstørrelsen.
Utgivere kan frigi og oppdatere flere versjoner av programvaren parallelt ved hjelp av kanaler. Hver kanal har et bestemt spor og risiko, som angir versjonen og stabiliteten til programvaren som er utgitt på den kanalen. Når du installerer et program, Er Snap standard for å brukelatest/stable
– kanalen, som automatisk oppdateres til nye hovedutgivelser av programvaren når de blir tilgjengelige. Utgivere kan opprette flere kanaler for å gi brukerne muligheten til å holde seg til bestemte store utgivelser av programvaren. For eksempel vil en 2.0/stable
– kanal tillate brukere å holde seg til 2.0-versjonen av programvaren og bare få mindre oppdateringer uten risiko for bakoverkompatible endringer. Når utgiveren utgir en ny hovedversjon i en ny kanal, kan brukerne manuelt oppdatere til neste versjon når de velger.
selv om automatiske oppdateringer ikke kan slås av, er det mange måter å konfigurere oppdateringer på for å dekke spesielle behov. Brukeren kan velge å forbli på en bestemt hovedversjon av programvaren ved å angi kanalen, de kan konfigurere oppdateringsintervallet for å få tid til å sjekke oppdateringer manuelt, og de kan holde oppdateringer i opptil 60 dager. I tillegg deaktiveres også oppdateringer automatisk på forbruksmålte tilkoblinger. Selv med disse kontrollene har en rekke brukere uttalt sine klager om mangelen på et alternativ for å slå automatiske oppdateringer helt av.
SnapcraftEdit
Canonical Ltd.
29 October 2015; 5 years ago
https://github.com/snapcore/snapcraft
Python
linux, macos, microsoft windows
gplv3
snapcraft.io Snapcraft Er et verktøy for utviklere å pakke sine programmer I Snap format. Det kjører på Alle Linux-distribusjon støttes Av Snap, macOS og Microsoft Windows. Snapcraft bygger pakkene i En Virtuell Maskin ved Hjelp Av Multipass, for a sikre at resultatet av en build er det samme, uansett hvilken distribusjon eller operativsystem den er bygget pa. Snapcraft støtter et stort antall byggverktøy og programmeringsspråk som Go, Java, JavaScript, Python, C/C++ og Rust. Det tillater også import av applikasjonsmetadata fra flere kilder som AppStream, git, shell scripts og setup.py
filer.