Maybaygiare.org

Blog Network

Snap (paketinhallinta)

Snap Storedit

Snap Storen avulla kehittäjät voivat julkaista sovelluksensa suoraan käyttäjille. Perinteisillä Linux-paketinhallinnan lähestymistavoilla, kuten APT tai YUM, Sovellukset pakataan ja jaetaan osana käyttöjärjestelmää. Tämä aiheuttaa viivettä sovelluskehityksen ja sen käyttöönoton välillä loppukäyttäjille. Sen sijaan sovelluskehittäjät voivat julkaista sovelluksensa Snap-kaupassa ja saada ne suoraan käyttäjille ilman jakelun ylläpitäjien väliintuloa.

kaikki Snap-kauppaan ladatut sovellukset testataan automaattisesti, mukaan lukien haittaohjelmien skannaus. Snap-sovellukset eivät kuitenkaan saa samaa vahvistustasoa kuin tavalliset Ubuntu-arkistot. Yhdessä tapauksessa toukokuussa 2018 kahden saman kehittäjän sovelluksen havaittiin sisältävän kryptovaluuttamineraalin, joka pyöri taustalla sovelluksen suorituksen aikana. Kun tämä ongelma havaittiin, Canonical poisti Sovellukset Snap-kaupasta ja siirsi Snaps-sovellusten omistuksen luotettavalle kolmannelle osapuolelle, joka julkaisi snapsit uudelleen ilman kaivosmiehen läsnäoloa. Vaikka Snap sandbox vähentää haitallisen sovelluksen vaikutusta, Canonical suosittelee, että käyttäjät asentavat snapsit vain käyttäjän luottamilta julkaisijoilta.

koska Snap-kaupan paketteja ylläpitävät kehittäjät itse, jakelun ylläpitäjät eivät voi varmistaa, että paketit täyttävät laatuvaatimukset ja että ne päivitetään ajoissa. Yhdessä tapauksessa Microsoft jätti Snapcraft-kauppaan vanhentuneen Skypen version yli vuodeksi.

vaikka Canonicalin Snap-myymälä on tällä hetkellä ainoa snapsien myymälä, itse Snapia voi käyttää ilman myymälää. Snap-paketteja voi saada mistä tahansa lähteestä, mukaan lukien kehittäjän verkkosivuilta. Red Hatin työntekijä Adam Williamson ja Linux Mint-projektin vetäjä Clement Lefebre ovat kritisoineet Canonicalia joidenkin Snap-kaupan palvelinpuolen osien pitämisestä suljettuna-lähdekoodina. Clementin mukaan tämä luo eturistiriidan, joka vahingoittaa Snapin puolueettomuutta, koska Canonical kehittää Ubuntua.

Universal Linux packagesEdit

snapsit ovat itsenäisiä paketteja, jotka toimivat useilla Linux-jakeluilla. Tämä poikkeaa perinteisistä Linux-paketinhallintatavoista, jotka vaativat erikseen sovitettuja paketteja jokaiselle Linux-jakelulle.

snap-tiedostomuoto on yksittäinen pakattu tiedostojärjestelmä, joka käyttää SquashFS-muotoa laajennuksella .snap. Tämä tiedostojärjestelmä sisältää sovelluksen, kirjastot, joista se riippuu, ja deklaratiivisen metatiedon. Snapd tulkitsee tämän metatiedon niin, että se määrittää sopivasti Muotoillun suojatun hiekkalaatikon kyseistä sovellusta varten. Asennuksen jälkeen snap asennetaan isäntäkäyttöjärjestelmä ja puretaan lennossa, kun tiedostoja käytetään. Vaikka tällä on se etu, että napsahtaa käyttää vähemmän levytilaa, se tarkoittaa myös sitä, että jotkut suuret sovellukset alkavat hitaammin.

merkittävä ero Snap: n ja muiden yleisten Linux-pakkausmuotojen, kuten Flatpakin, välillä on se, että Snap tukee mitä tahansa Linux-sovellusten luokkaa, kuten työpöytäsovelluksia, palvelintyökaluja, IoT-sovelluksia ja jopa järjestelmäpalveluja, kuten tulostinohjainpinoa. Tämän varmistamiseksi Snap luottaa systemd: n ominaisuuksiin, kuten socket-activated system services in a Snap. Tämä saa Snap toimimaan vain jakeluissa, jotka käyttävät tätä init-järjestelmää.

Konfiguroitavat sandboxEdit

Sovellukset Snap-ajossa säiliössä, jossa on rajoitettu pääsy isäntäjärjestelmään. Käyttöliittymien avulla käyttäjät voivat antaa sovelluksen välittämän pääsyn isännän lisäominaisuuksiin, kuten äänen tallennukseen, USB-laitteisiin ja videon tallentamiseen. Nämä rajapinnat välittävät säännöllisiä Linuxin sovellusliittymiä niin, että sovellukset voivat toimia hiekkalaatikossa ilman, että niitä tarvitsee kirjoittaa uudelleen. Työpöytäsovellukset voivat myös käyttää XDG-Työpöytäportaaleja, Flatpak-projektin alun perin luomaa standardoitua API: ta, joka antaa sandboxed-työpöytäsovelluksille pääsyn isäntäresursseihin. Nämä portaalit tarjoavat usein paremman käyttökokemuksen verrattuna natiiveihin Linuxin sovellusliittymiin, koska ne pyytävät käyttäjältä lupaa resursseihin, kuten web-kameraan silloin, kun sovellus käyttää niitä. Haittapuolena on, että sovellukset ja työkalusarjat on kirjoitettava uudelleen, jotta voidaan käyttää näitä uudempia sovellusliittymiä.

Snap sandbox tukee myös datan ja Unix-pistorasioiden jakamista Napsahdusten välillä. Tätä käytetään usein yhteisten kirjastojen ja sovelluskehysten jakamiseen Napsahdusten välillä, jotta Napsahdusten kokoa voidaan pienentää päällekkäisyyksiä välttämällä.

Snap sandbox nojaa vahvasti apparmor Linux-Tietoturvamoduuliin ylävirran Linux-ytimestä. Koska vain yksi ”suuri” Linux Security Module (LSM) voi olla aktiivinen samanaikaisesti, Snap sandbox on paljon turvallisempi, kun toinen suuri LSM on käytössä. Tämän seurauksena Fedoran kaltaisissa jakeluissa, jotka mahdollistavat SELinuxin oletusarvoisesti, Snap sandbox on voimakkaasti heikentynyt. Vaikka Canonical tekee yhteistyötä monien muiden kehittäjien ja yritysten kanssa mahdollistaakseen useiden LSM: ien toiminnan samanaikaisesti, tämä ratkaisu on vielä pitkän ajan päässä.

Snap sandbox estää napsahtaneita työpöytäsovelluksia pääsemästä isäntäkäyttöjärjestelmän teemoihin yhteensopivuusongelmien estämiseksi. Jotta napsahtaa käyttää teema, se on myös pakattava erilliseen Snap. Snap-kehittäjät ovat pakanneet monia suosittuja teemoja, mutta joitain teemoja ei ole vielä tuettu ja epätavalliset teemat on asennettava manuaalisesti. Jos teema ei ole saatavilla Snap-pakettina, käyttäjien on turvauduttava valitsemaan paras saatavilla oleva teema. Työ on käynnissä, jotta kolmansien osapuolten on helpompi paketoida teemoja hetkessä ja asentaa automaattisesti epätavallisia järjestelmäteemoja.

Automatic and atomic updatesEdit

useita kertoja päivässä, snapd tarkistaa kaikkien Snappien saatavilla olevat päivitykset ja asentaa ne taustalle atomitoiminnolla. Päivitykset voidaan palauttaa ja käyttää Delta-koodausta niiden latauskoon pienentämiseksi.

julkaisijat voivat julkaista ja päivittää useita versioita ohjelmistostaan rinnakkain kanavia käyttäen. Jokaisella kanavalla on oma kappaleensa ja riskinsä, jotka kertovat kyseisellä kanavalla julkaistun ohjelmiston versiosta ja vakaudesta. Sovellusta asennettaessa Snap käyttää oletuksena latest/stable – kanavaa, joka päivittyy automaattisesti ohjelmiston uusiin pääjulkaisuihin, kun ne tulevat saataville. Julkaisijat voivat luoda lisäkanavia, jotka antavat käyttäjille mahdollisuuden pitää kiinni tietyistä ohjelmistonsa merkittävistä julkaisuista. Esimerkiksi 2.0/stable – kanava antaisi käyttäjien pitää kiinni ohjelmiston 2.0-versiosta ja saada vain pieniä päivityksiä ilman riskiä väärinpäin yhteensopimattomista muutoksista. Kun julkaisija julkaisee uuden pääversion uudella kanavalla, käyttäjät voivat halutessaan manuaalisesti päivittää seuraavaan versioon.

vaikka automaattisia päivityksiä ei voi kytkeä pois päältä, on olemassa monia tapoja määrittää päivitykset erityistarpeisiin sopiviksi. Käyttäjä voi halutessaan pysyä tietyn pääversio ohjelmiston määrittämällä kanavan, he voivat määrittää päivitysväli on aikaa manuaalisesti tarkistaa päivitykset, ja ne voivat pitää päivityksiä jopa 60 päivää. Lisäksi päivitykset ovat myös automaattisesti pois käytöstä mitatuissa yhteyksissä. Vaikka nämä tarkastukset, monet käyttäjät ovat ilmaisseet valituksensa siitä, että ei ole mahdollisuutta kytkeä automaattisia päivityksiä kokonaan pois päältä.

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 kuukautta sitten

Repository

https://github.com/snapcore/snapcraft

kirjoitettu

Python

käyttöjärjestelmä

Linux, MacOS, Microsoft Windows

lisenssi

GPLv3

verkkosivusto

snapcraft.io

Snapcraft on työkalu, jolla kehittäjät voivat paketoida ohjelmansa Snap-muotoon. Se toimii missä tahansa Linux-jakelussa, jota tukevat Snap, macOS ja Microsoft Windows. Snapcraft rakentaa paketit virtuaalikoneessa Multipassin avulla, jotta builtin tulos olisi sama riippumatta siitä, mille jakelulle tai käyttöjärjestelmälle se on rakennettu. Snapcraft tukee suurta määrää käännöstyökaluja ja ohjelmointikieliä, kuten Go, Java, JavaScript, Python, C/C++ ja Rust. Se mahdollistaa myös sovellusten metatiedon tuonnin useista lähteistä, kuten AppStream, git, shell-skriptit ja setup.py tiedostot.

Vastaa

Sähköpostiosoitettasi ei julkaista.