Maybaygiare.org

Blog Network

Snap (package manager)

Snap Storedit

in de Snap Store kunnen ontwikkelaars hun applicaties rechtstreeks aan gebruikers publiceren. Met traditionele Linux package management benaderingen zoals APT of YUM, worden de applicaties verpakt en gedistribueerd als onderdeel van het besturingssysteem. Dit zorgt voor een vertraging tussen de ontwikkeling van applicaties en de implementatie ervan voor eindgebruikers. In tegenstelling, applicatie-ontwikkelaars kunnen hun applicaties te publiceren in de Snap Store en krijg ze direct aan gebruikers zonder enige tussenkomst van de distributie onderhouders.

alle apps die naar de Snap Store worden geüpload, worden automatisch getest, inclusief een malwarescan. Snap-apps ontvangen echter niet hetzelfde verificatieniveau als software in de reguliere Ubuntu-Archieven. In een geval in mei 2018, twee toepassingen van dezelfde ontwikkelaar werden gevonden om een cryptogeld mijnwerker die op de achtergrond liep tijdens de uitvoering van de toepassing bevatten. Wanneer dit probleem werd gevonden, Canonical verwijderde de toepassingen uit de Snap Store en overgedragen eigendom van de Snaps aan een vertrouwde derde partij die de Snaps opnieuw gepubliceerd zonder de mijnwerker aanwezig. Hoewel de Snap sandbox vermindert de impact van een kwaadaardige app, Canonical raadt Gebruikers alleen installeren Snaps van uitgevers vertrouwd door de gebruiker.

omdat pakketten in de Snap Store door ontwikkelaars zelf worden onderhouden, kunnen distributiebeheerders niet garanderen dat pakketten voldoen aan kwaliteitsnormen en worden ze tijdig bijgewerkt. In een geval, Microsoft liet een verouderde versie van Skype in de Snapcraft store voor meer dan een jaar.

hoewel de Snap-opslag van Canonical momenteel de enige bestaande opslag voor snaps is, kan Snap zelf zonder opslag worden gebruikt. Snap pakketten kunnen worden verkregen uit elke bron, met inbegrip van de website van een ontwikkelaar. Red Hat werknemer Adam Williamson en Linux Mint project lead Clement Lefebre hebben kritiek Canonical voor het houden van een aantal server kant delen van de Snap Store gesloten-source. Clement stelt dat dit een belangenconflict creëert dat de neutraliteit van Snap schaadt gezien het feit dat Canonical Ubuntu ontwikkelt.

Universal Linux packagesEdit

Snaps zijn op zichzelf staande pakketten die werken over een reeks van Linux distributies. Dit is in tegenstelling tot traditionele Linux package management benaderingen, die specifiek aangepaste pakketten voor elke Linux distributie vereisen.

het snap-bestandsformaat is een enkel gecomprimeerd bestandssysteem dat het SquashFS-formaat gebruikt met de extensie .snap. Dit bestandssysteem bevat de applicatie, bibliotheken waarvan het afhankelijk is, en declaratieve metadata. Deze metadata wordt geïnterpreteerd door snapt om het opzetten van een adequaat gevormde veilige sandbox voor die toepassing. Na de installatie wordt de module gemonteerd door het host-besturingssysteem en gedecomprimeerd op de vlieg wanneer de bestanden worden gebruikt. Hoewel dit het voordeel heeft dat snaps minder schijfruimte gebruiken, betekent het ook dat sommige grote toepassingen langzamer starten.

een significant verschil tussen Snap en andere universele Linux-verpakkingsformaten zoals Flatpak is dat Snap elke klasse van Linux-toepassingen ondersteunt, zoals desktoptoepassingen, servertools, IoT-apps en zelfs systeemservices zoals de printerstuurprogramma-stack. Om dit te garanderen, vertrouwt Snap op systemd voor functies zoals het uitvoeren van socket-geactiveerde systeem services in een handomdraai. Dit zorgt ervoor dat Snap alleen werkt op distributies die dit init-systeem gebruiken.

configureerbare sandboxEdit

toepassingen in een Snap draaien in een container met beperkte toegang tot het hostsysteem. Met behulp van Interfaces kunnen gebruikers een applicatie gemedieerde toegang geven tot extra functies van de host, zoals het opnemen van audio, toegang tot USB-apparaten en het opnemen van video. Deze interfaces bemiddelen reguliere Linux API ‘ s zodat applicaties in de sandbox kunnen functioneren zonder dat ze hoeven te worden herschreven. Desktoptoepassingen kunnen ook de XDG Desktop Portals gebruiken, een gestandaardiseerde API die oorspronkelijk is gemaakt door het Flatpak-project om sandboxed desktoptoepassingen toegang te geven tot hostbronnen. Deze portals bieden vaak een betere gebruikerservaring in vergelijking met de native Linux API ‘ s omdat ze de gebruiker vragen om toestemming voor bronnen zoals een webcam op het moment dat de toepassing ze gebruikt. Het nadeel is dat applicaties en toolkits moeten worden herschreven om deze nieuwere API ‘ s te gebruiken.

De Snap sandbox ondersteunt ook het delen van data en Unix sockets tussen Snaps. Dit wordt vaak gebruikt om gemeenschappelijke bibliotheken en toepassingskaders tussen Snaps te delen om de grootte van Snaps te verminderen door duplicatie te vermijden.

De Snap sandbox is sterk afhankelijk van de AppArmor Linux Security Module van de upstream Linux kernel. Omdat slechts één” major ” Linux Security Module (LSM) tegelijkertijd actief kan zijn, is de Snap sandbox veel minder veilig als een andere major LSM is ingeschakeld. Als gevolg hiervan, op distributies zoals Fedora die SELinux standaard aanzetten, is de Snap sandbox zwaar gedegradeerd. Hoewel Canonical met veel andere ontwikkelaars en bedrijven werkt om het mogelijk te maken dat meerdere LSM ‘ s tegelijkertijd draaien, is deze oplossing nog lang weg.

De Snap sandbox voorkomt dat knapte bureaubladtoepassingen toegang krijgen tot de thema ‘ s van het hostbesturingssysteem om compatibiliteitsproblemen te voorkomen. Om voor Snaps om een thema te gebruiken, het moet ook worden verpakt in een aparte Snap. Veel populaire thema ’s zijn verpakt door de Snap-ontwikkelaars, maar sommige thema’ s worden nog niet ondersteund en ongewone thema ‘ s moeten handmatig worden geïnstalleerd. Als een thema is niet beschikbaar als een Snap pakket, gebruikers moeten hun toevlucht nemen tot het kiezen van de beste bijpassende thema beschikbaar. Er wordt gewerkt om het gemakkelijker te maken voor derden om thema ’s in een handomdraai te verpakken en om automatisch ongewone systeemthema’ s te installeren.

automatische en atomaire updatesEdit

meerdere keren per dag, snapd controleert op beschikbare updates van alle Snaps en installeert ze op de achtergrond met behulp van atomaire werking. Updates kunnen worden teruggedraaid en delta-codering gebruiken om hun downloadgrootte te verminderen.

uitgevers kunnen meerdere versies van hun software parallel uitgeven en bijwerken via kanalen. Elk kanaal heeft een specifieke track en risico, die de versie en stabiliteit van de software vrijgegeven op dat kanaal. Bij het installeren van een toepassing gebruikt Snap standaard het latest/stable kanaal, dat automatisch wordt bijgewerkt naar nieuwe belangrijke versies van de software wanneer deze beschikbaar komen. Uitgevers kunnen extra kanalen creëren om gebruikers de mogelijkheid te geven zich te houden aan specifieke belangrijke releases van hun software. Bijvoorbeeld, een 2.0/stable kanaal zou gebruikers in staat stellen om vast te houden aan de 2.0 versie van de software en alleen kleine updates te krijgen zonder het risico van achterwaarts incompatibele wijzigingen. Wanneer de uitgever een nieuwe hoofdversie in een nieuw kanaal uitbrengt, kunnen gebruikers handmatig bijwerken naar de volgende versie wanneer ze kiezen.

hoewel automatische updates niet kunnen worden uitgeschakeld, zijn er veel manieren om updates aan te passen aan specifieke behoeften. De gebruiker kan ervoor kiezen om op een specifieke belangrijke versie van de software te blijven door het kanaal op te geven, ze kunnen het updateinterval configureren om tijd te hebben om handmatig updates te controleren en ze kunnen updates tot 60 dagen vasthouden. Bovendien worden updates ook automatisch uitgeschakeld op gemeten verbindingen. Zelfs met deze controles hebben een aantal gebruikers hun klachten geuit over het ontbreken van een optie om automatische updates volledig uit te schakelen.

SnapcraftEdit

snapcraft

Snapcraft Logo

Developer(s)

Canonical Ltd.

Initial release

29 October 2015; 5 years ago

Stable release
4.4.2 / 13 November 2020; 4 maanden geleden

Archief

https://github.com/snapcore/snapcraft

Geschreven

Python

Operating systeem

Linux, macOS, Microsoft Windows

Licentie

de GPLv3

Website

snapcraft.io

Snapcraft is een tool voor ontwikkelaars voor het verpakken van hun programma ‘ s in de Module-indeling. Het draait op elke Linux-distributie die wordt ondersteund door Snap, macOS en Microsoft Windows. Snapcraft bouwt de pakketten in een virtuele Machine met behulp van Multipass, om ervoor te zorgen dat het resultaat van een build is hetzelfde, ongeacht welke distributie of besturingssysteem het is gebouwd op. Snapcraft ondersteunt een groot aantal build tools en programmeertalen zoals Go, Java, JavaScript, Python, C/C++ en Rust. Het staat ook het importeren van applicatiemetadata toe uit meerdere bronnen, zoals AppStream, Git, shell scripts en setup.py bestanden.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.