Snap StoreEdit
Snap Store permite dezvoltatorilor să publice aplicațiile lor direct utilizatorilor. Cu abordările tradiționale de gestionare a pachetelor Linux precum APT sau YUM, aplicațiile sunt ambalate și distribuite ca parte a sistemului de operare. Acest lucru creează o întârziere între dezvoltarea aplicației și implementarea acesteia pentru utilizatorii finali. În schimb, dezvoltatorii de aplicații își pot publica aplicațiile în magazinul Snap și le pot trimite direct utilizatorilor fără nicio intervenție din partea întreținătorilor de distribuție.
toate aplicațiile încărcate în Snap Store sunt testate automat, inclusiv o scanare malware. Cu toate acestea, aplicațiile Snap nu primesc același nivel de verificare ca software-ul din arhivele obișnuite Ubuntu. Într-un caz din mai 2018, s-a constatat că două aplicații ale aceluiași Dezvoltator conțin un miner de criptocurrency care a rulat în fundal în timpul executării aplicației. Când a fost găsită această problemă, Canonical a eliminat aplicațiile din magazinul Snap și a transferat proprietatea Snaps către o terță parte de încredere care a reeditat Snaps-urile fără ca minerul să fie prezent. Deși Snap sandbox reduce impactul unei aplicații rău intenționate, Canonical recomandă utilizatorilor să instaleze Snaps numai de la editori de încredere de către utilizator.
deoarece pachetele din Snap Store sunt întreținute chiar de dezvoltatori, administratorii de distribuție nu se pot asigura că pachetele îndeplinesc standardele de calitate și sunt actualizate în timp util. Într-un caz, Microsoft a lăsat o versiune învechită a Skype în magazinul Snapcraft de peste un an.
deși magazinul Snap de Canonical este în prezent singurul magazin existent pentru snaps, Snap în sine poate fi utilizat fără un magazin. Pachetele Snap pot fi obținute din orice sursă, inclusiv site-ul web al unui dezvoltator. Angajatul Red Hat Adam Williamson și liderul proiectului Linux Mint, Clement Lefebre, au criticat Canonical pentru păstrarea unor părți laterale ale serverului Snap Store cu sursă închisă. Clement afirmă că acest lucru creează un conflict de interese care dăunează neutralității Snap, având în vedere că Canonical dezvoltă Ubuntu.
universal Linux packagesEdit
Snaps sunt pachete autonome care funcționează într-o gamă de distribuții Linux. Acest lucru este diferit de abordările tradiționale de gestionare a pachetelor Linux, care necesită pachete adaptate special pentru fiecare distribuție Linux.
formatul de fișier snap este un singur sistem de Fișiere comprimat care utilizează formatul SquashFS cu extensia.snap
. Acest sistem de fișiere conține aplicația, bibliotecile de care depinde și metadatele declarative. Aceste metadate sunt interpretate de snapd pentru a configura o cutie de nisip securizată în formă adecvată pentru acea aplicație. După instalare, snap-ul este montat de sistemul de operare gazdă și decomprimat din mers atunci când sunt utilizate fișierele. Deși acest lucru are avantajul că snaps utilizează mai puțin spațiu pe disc, înseamnă, de asemenea, că unele aplicații mari încep mai lent.o diferență semnificativă între Snap și alte formate universale de ambalare Linux, cum ar fi Flatpak, este că Snap acceptă orice clasă de aplicații Linux, cum ar fi aplicații desktop, Instrumente server, aplicații IoT și chiar servicii de sistem, cum ar fi stiva driverului imprimantei. Pentru a asigura acest lucru, Snap se bazează pe systemd pentru funcții precum rularea serviciilor de sistem activate de socket într-o clipă. Acest lucru face ca Snap să funcționeze numai pe distribuțiile care utilizează acest sistem init.
Sandboxedit configurabil
aplicații într-o clipă rula într-un container cu acces limitat la sistemul gazdă. Folosind interfețe, utilizatorii pot oferi o aplicație mediată de acces la caracteristici suplimentare ale gazdei, cum ar fi înregistrarea audio, accesarea dispozitivelor USB și înregistrarea video. Aceste interfețe mediază API-urile Linux obișnuite, astfel încât aplicațiile să poată funcționa în sandbox fără a fi nevoie să fie rescrise. Aplicațiile Desktop pot utiliza, de asemenea, portalurile Desktop XDG, un API standardizat creat inițial de Proiectul Flatpak pentru a oferi aplicațiilor desktop sandboxed acces la resursele gazdă. Aceste portaluri oferă adesea o experiență de utilizare mai bună în comparație cu API-urile native Linux, deoarece solicită utilizatorului permisiunea de a resurse, cum ar fi o cameră web în momentul în care aplicația le folosește. Dezavantajul este că aplicațiile și seturile de instrumente trebuie rescrise pentru a utiliza aceste API-uri mai noi.
Snap sandbox acceptă, de asemenea, schimbul de date și prize Unix între Snaps. Acest lucru este adesea folosit pentru a partaja biblioteci comune și cadre de aplicații între Snaps pentru a reduce dimensiunea Snaps prin evitarea duplicării.
Snap sandbox se bazează foarte mult pe modulul de securitate AppArmor Linux din nucleul Linux din amonte. Deoarece un singur modul de securitate Linux” major ” (LSM) poate fi activ în același timp, Snap sandbox este mult mai puțin sigur atunci când este activat un alt LSM major. Ca urmare, pe distribuții precum Fedora care permit SELinux în mod implicit, Snap sandbox este puternic degradat. Deși Canonical lucrează cu mulți alți dezvoltatori și companii pentru a face posibil ca mai multe LSM-uri să ruleze în același timp, această soluție este încă departe.
Snap sandbox împiedică aplicațiile desktop rupte să acceseze temele sistemului de operare gazdă pentru a preveni problemele de compatibilitate. Pentru ca Snaps să utilizeze o temă, trebuie, de asemenea, să fie ambalată într-o clipă separată. Multe teme populare sunt ambalate de dezvoltatorii Snap, dar unele teme nu sunt acceptate încă și teme mai puțin frecvente trebuie să fie instalate manual. Dacă o temă nu este disponibilă ca pachet Snap, utilizatorii trebuie să recurgă la alegerea celei mai potrivite teme disponibile. Lucrările sunt în curs de desfășurare pentru a facilita terților să împacheteze teme într-o clipă și să instaleze automat teme de sistem neobișnuite.
actualizări automate și atomiceedit
de mai multe ori pe zi, snapd verifică actualizările disponibile ale tuturor Snaps și le instalează în fundal folosind funcționarea atomică. Actualizările pot fi returnate și pot utiliza codificarea delta pentru a reduce dimensiunea descărcării.
editorii pot lansa și actualiza mai multe versiuni ale software-ului lor în paralel folosind canale. Fiecare canal are o pistă și un risc specific, care indică versiunea și stabilitatea software-ului lansat pe acel canal. La instalarea unei aplicații, Snap implicit la utilizarealatest/stable
canal, care va actualiza automat la noi versiuni majore ale software-ului atunci când acestea devin disponibile. Editorii pot crea canale suplimentare pentru a oferi utilizatorilor posibilitatea de a se lipi de anumite versiuni majore ale software-ului lor. De exemplu, un canal 2.0/stable
ar permite utilizatorilor să rămână la versiunea 2.0 a software-ului și să obțină doar actualizări minore fără riscul unor modificări incompatibile înapoi. Când editorul lansează o nouă versiune majoră într-un canal nou, utilizatorii pot actualiza manual la următoarea versiune atunci când aleg.
deși actualizările automate nu pot fi dezactivate, există multe modalități de configurare a actualizărilor pentru a se potrivi nevoilor particulare. Utilizatorul poate alege să rămână pe o anumită versiune majoră a software-ului specificând canalul, poate configura intervalul de actualizare pentru a avea timp să verifice manual actualizările și poate ține actualizări până la 60 de zile. În plus, actualizările sunt dezactivate automat și la conexiunile măsurate. Chiar și cu aceste controale, un număr de utilizatori și-au exprimat plângerile cu privire la lipsa unei opțiuni de a dezactiva complet actualizările automate.
SnapcraftEdit
Canonical Ltd.
29 October 2015; 5 years ago
https://github.com/snapcore/snapcraft
Python
Linux, MacOS, Microsoft Windows
GPLv3
snapcraft.io Snapcraft este un instrument pentru dezvoltatori pentru a împacheta programele lor în format Snap. Rulează pe orice distribuție Linux acceptată de Snap, macOS și Microsoft Windows. Snapcraft construiește pachetele într-o mașină virtuală folosind Multipass, pentru a se asigura că rezultatul unei construcții este același, indiferent de distribuția sau sistemul de operare pe care este construit. Snapcraft acceptă un număr mare de instrumente de construire și limbaje de programare, cum ar fi Go, Java, JavaScript, Python, C/C++ și Rust. De asemenea, permite importul metadatelor aplicației din mai multe surse, cum ar fi AppStream, git, scripturi shell și setup.py
fișiere.