Maybaygiare.org

Blog Network

Snap (package manager)

Snap StoreEdit

Lo Snap Store consente agli sviluppatori di pubblicare le proprie applicazioni direttamente agli utenti. Con i tradizionali approcci di gestione dei pacchetti Linux come APT o YUM, le applicazioni sono pacchettizzate e distribuite come parte del sistema operativo. Ciò crea un ritardo tra lo sviluppo dell’applicazione e la sua distribuzione per gli utenti finali. Al contrario, gli sviluppatori di applicazioni possono pubblicare le loro applicazioni nello Snap Store e ottenerle direttamente agli utenti senza alcun intervento da parte dei manutentori della distribuzione.

Tutte le app caricate nello Snap Store vengono sottoposte a test automatici, inclusa una scansione malware. Tuttavia, le app Snap non ricevono lo stesso livello di verifica del software nei normali archivi di Ubuntu. In un caso a maggio 2018, due applicazioni dello stesso sviluppatore sono state trovate per contenere un minatore di criptovaluta che è stato eseguito in background durante l’esecuzione dell’applicazione. Quando è stato riscontrato questo problema, Canonical ha rimosso le applicazioni dallo Snap Store e ha trasferito la proprietà degli Snap a una terza parte attendibile che ha ripubblicato gli Snap senza il minatore presente. Sebbene Snap sandbox riduca l’impatto di un’app dannosa, Canonical consiglia agli utenti di installare Snap solo da publisher considerati attendibili dall’utente.

Poiché i pacchetti nello Snap Store sono gestiti dagli sviluppatori stessi, i manutentori della distribuzione non possono garantire che i pacchetti soddisfino gli standard di qualità e siano aggiornati tempestivamente. In un caso, Microsoft ha lasciato una versione obsoleta di Skype nel negozio Snapcraft per oltre un anno.

Sebbene lo Snap Store di Canonical sia attualmente l’unico negozio esistente per gli snap, lo Snap stesso può essere utilizzato senza un negozio. I pacchetti Snap possono essere ottenuti da qualsiasi fonte, incluso il sito Web di uno sviluppatore. Red Hat dipendente Adam Williamson e Linux Mint project lead Clement Lefebre hanno criticato Canonical per mantenere alcune parti lato server dello Snap Store closed-source. Clement afferma che questo crea un conflitto di interessi che danneggia la neutralità di Snap dato che Canonical sviluppa Ubuntu.

Universal Linux packagesEdit

Gli snap sono pacchetti autonomi che funzionano su una vasta gamma di distribuzioni Linux. Questo è diverso dai tradizionali approcci di gestione dei pacchetti Linux, che richiedono pacchetti specificamente adattati per ogni distribuzione Linux.

Il formato di file snap è un singolo file system compresso che utilizza il formato SquashFS con estensione .snap. Questo filesystem contiene l’applicazione, le librerie da cui dipende e i metadati dichiarativi. Questi metadati vengono interpretati da snapd per impostare una sandbox sicura di forma appropriata per tale applicazione. Dopo l’installazione, lo snap viene montato dal sistema operativo host e decompresso al volo quando vengono utilizzati i file. Anche se questo ha il vantaggio che gli snap utilizzano meno spazio su disco, significa anche che alcune applicazioni di grandi dimensioni si avviano più lentamente.

Una differenza significativa tra Snap e altri formati di packaging Linux universali come Flatpak è che Snap supporta qualsiasi classe di applicazioni Linux come applicazioni desktop, strumenti server, app IoT e persino servizi di sistema come lo stack dei driver di stampa. Per garantire ciò, Snap si affida a systemd per funzionalità come l’esecuzione di servizi di sistema attivati da socket in un attimo. Ciò fa sì che Snap funzioni solo su distribuzioni che utilizzano questo sistema init.

sandboxEdit configurabilemodifica

Le applicazioni in uno snap vengono eseguite in un contenitore con accesso limitato al sistema host. Utilizzando le interfacce, gli utenti possono dare a un’applicazione mediata l’accesso a funzionalità aggiuntive dell’host come la registrazione audio, l’accesso a dispositivi USB e la registrazione di video. Queste interfacce mediano le normali API Linux in modo che le applicazioni possano funzionare nella sandbox senza dover essere riscritte. Le applicazioni desktop possono anche utilizzare i portali desktop XDG, un’API standardizzata originariamente creata dal progetto Flatpak per consentire alle applicazioni desktop in modalità sandbox l’accesso alle risorse host. Questi portali spesso forniscono un’esperienza utente migliore rispetto alle API native di Linux perché richiedono all’utente l’autorizzazione a risorse come una webcam nel momento in cui l’applicazione li utilizza. Lo svantaggio è che le applicazioni e i toolkit devono essere riscritti per utilizzare queste API più recenti.

Snap sandbox supporta anche la condivisione di dati e socket Unix tra Snap. Questo viene spesso utilizzato per condividere librerie comuni e framework applicativi tra gli Snap per ridurre le dimensioni degli Snap evitando la duplicazione.

La sandbox Snap si basa molto sul modulo di sicurezza AppArmor Linux dal kernel Linux upstream. Poiché solo un modulo di sicurezza Linux” principale ” (LSM) può essere attivo allo stesso tempo, la sandbox Snap è molto meno sicura quando un altro LSM principale è abilitato. Di conseguenza, su distribuzioni come Fedora che abilitano SELinux per impostazione predefinita, la sandbox Snap è fortemente degradata. Sebbene Canonical stia lavorando con molti altri sviluppatori e aziende per rendere possibile l’esecuzione di più LSM contemporaneamente, questa soluzione è ancora lontana da molto tempo.

La sandbox Snap impedisce alle applicazioni desktop snap di accedere ai temi del sistema operativo host per evitare problemi di compatibilità. Affinché gli Snap possano utilizzare un tema, deve anche essere confezionato in uno snap separato. Molti temi popolari sono confezionati dagli sviluppatori Snap, ma alcuni temi non sono ancora supportati e temi non comuni devono essere installati manualmente. Se un tema non è disponibile come pacchetto Snap, gli utenti devono ricorrere alla scelta del miglior tema di corrispondenza disponibile. Il lavoro è in corso per rendere più facile per le terze parti per il pacchetto di temi in un attimo e per installare automaticamente i temi di sistema non comuni.

Aggiornamenti automatici e atomicimodifica

Più volte al giorno, snapd controlla gli aggiornamenti disponibili di tutti gli Snap e li installa in background usando l’operazione atomica. Gli aggiornamenti possono essere ripristinati e utilizzare la codifica delta per ridurre le dimensioni del download.

Gli editori possono rilasciare e aggiornare più versioni del loro software in parallelo utilizzando i canali. Ogni canale ha una traccia e un rischio specifici, che indicano la versione e la stabilità del software rilasciato su quel canale. Quando si installa un’applicazione, Snap utilizza per impostazione predefinita il canale latest/stable, che si aggiornerà automaticamente alle nuove versioni principali del software quando saranno disponibili. Gli editori possono creare canali aggiuntivi per dare agli utenti la possibilità di attenersi a specifiche versioni principali del loro software. Ad esempio, un canale2.0/stable consentirebbe agli utenti di attenersi alla versione 2.0 del software e ottenere solo aggiornamenti minori senza il rischio di modifiche incompatibili all’indietro. Quando l’editore rilascia una nuova versione principale in un nuovo canale, gli utenti possono aggiornare manualmente alla versione successiva quando scelgono.

Sebbene gli aggiornamenti automatici non possano essere disattivati, esistono molti modi per configurare gli aggiornamenti in base alle esigenze particolari. L’utente può scegliere di rimanere su una specifica versione principale del software specificando il canale, può configurare l’intervallo di aggiornamento per avere il tempo di controllare manualmente gli aggiornamenti e può contenere gli aggiornamenti fino a 60 giorni. Inoltre, gli aggiornamenti vengono disabilitati automaticamente anche sulle connessioni misurate. Anche con questi controlli, un certo numero di utenti hanno espresso le loro lamentele sulla mancanza di un’opzione per disattivare completamente gli aggiornamenti automatici.

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 mesi fa

Repository

https://github.com/snapcore/snapcraft

Scritto in

Python

sistema Operativo

Linux, macOS, Microsoft Windows

Licenza

GPLv3

Sito web

snapcraft.io

Snapcraft è uno strumento per sviluppatori per imballare i loro programmi in un batter d’occhio formato. Funziona su qualsiasi distribuzione Linux supportata da Snap, macOS e Microsoft Windows. Snapcraft costruisce i pacchetti in una macchina virtuale utilizzando Multipass, al fine di garantire che il risultato di una build sia lo stesso, indipendentemente dalla distribuzione o dal sistema operativo su cui è costruito. Snapcraft supporta un gran numero di strumenti di compilazione e linguaggi di programmazione come Go, Java, JavaScript, Python, C/C++ e Rust. Consente inoltre di importare i metadati delle applicazioni da più fonti come AppStream, git, script di shell esetup.py file.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.