Rilascio del sistema di pacchetti autonomi Flatpak 1.4.0

Pubblicato nuova versione stabile dell'ambiente di sviluppo Flatpak 1.4, che fornisce un sistema per costruire pacchetti autonomi, non legati a specifiche distribuzioni Linux e eseguiti in un contenitore speciale che isola l'applicazione dal resto del sistema. Il supporto per l'esecuzione di pacchetti Flatpak è garantito per Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint e Ubuntu. I pacchetti Flatpak sono inclusi nel repository di Fedora e sono supportati dal gestore di applicazioni GNOME.

Chiave novità nella versione Flatpak 1.4:

  • È stata modificata l'organizzazione della configurazione dei repository esterni. Nella directory /etc/flatpak/remotes.d, invece dei file *.conf con le impostazioni, ora si utilizzano file normali con estensione «.flatpakrepo», che vengono importati automaticamente al primo utilizzo di flatpak. Questi file possono essere modificati ed eliminati liberamente, analogamente ai repository aggiunti manualmente.
  • È stata notevolmente modificata l'organizzazione delle installazioni dei pacchetti disponibili per l'intero sistema. Nelle versioni precedenti, il pacchetto veniva inizialmente installato in una cartella temporanea dell'utente e poi il processo system-helper veniva attivato per importarlo nel sistema da questa cartella. Questo approccio portava a un grande consumo di risorse disco, a un'elevata I/O e a potenziali problemi di sicurezza. Nella nuova versione, per l'installazione dei pacchetti di sistema, è stata utilizzata una nuova particolare filesystem FUSE, in cui l'utente può scrivere dati, ma una volta terminata la scrittura, l'accesso ai file registrati per l'utente viene bloccato. Il nuovo approccio implica la necessità di creare un utente separato per flatpak (per impostazione predefinita «flatpak») e di modificare le regole SELinux;
  • È stata aggiunta la possibilità di definire, lato client, filtri per i repository esterni. Con l'uso dei filtri, è possibile limitare le applicazioni visibili nel repository, utilizzando un modello di liste bianche e nere;
  • È stata aggiunta un'API di libreria per aggiungere repository esterni da file flatpakref;
  • Aggiunto un profilo seccomp per Docker che consente di eseguire flatpak all'interno dei contenitori;
  • Migliorata la possibilità di installazione da più fonti P2P (tramite chiavette USB o rete locale);
  • Nel comando «flatpak remote-ls» è stata implementata la filtrazione automatica delle applicazioni il cui supporto è scaduto;
  • Nel comando «flatpak remote-ls» e «flatpak remote-info» è stata implementata l'opzione «—cached» per fornire informazioni basate sui dati locali memorizzati nella cache;
  • Aggiunta la possibilità di specificare una versione di scadenza del pacchetto, dopo la quale verrà visualizzato un suggerimento per passare a un nuovo ramo;
  • Aggiunta l'opzione «—socket=pcsc» per accedere alle smart card;
  • Aggiunto supporto per sistemi con più schede grafiche NVIDIA;
  • Implementato il supporto per dconf collocato in un ambiente sandbox;
  • Nel comando build-update-repo sono state aggiunte le opzioni «—no-update-[summary,appstream]» e «—static-delta-ignore-ref=PATTERN»;
  • Significativamente aumentata la velocità di rigenerazione dei rami appstream per grandi repository.

Ricordiamo che Flatpak offre agli sviluppatori la possibilità di semplificare la distribuzione delle proprie applicazioni, che non fanno parte dei repository ufficiali delle distribuzioni, grazie a preparazione di un unico contenitore universale senza la necessità di creare assemblaggi separati per ogni distribuzione. Per gli utenti attenti alla sicurezza, Flatpak permette di eseguire un'applicazione sospetta in un contenitore, fornendo accesso solo alle funzionalità di rete e ai file dell'utente legati all'app. Per gli utenti interessati alle novità, Flatpak consente di installare le versioni più recenti, sia in fase di testing che stabili, senza necessità di apportare modifiche al sistema. Ad esempio, attualmente i pacchetti Flatpak sono già assemblati per LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, ecc.

Per ridurre le dimensioni del pacchetto, include solo le dipendenze specifiche dell'applicazione, mentre le librerie di sistema e grafiche di base (Gtk+, Qt, librerie GNOME e KDE, ecc.) sono fornite sotto forma di runtime environments modulari. La principale differenza tra Flatpak e Snap è che Snap utilizza componenti dell'ambiente di sistema principale e l'isolamento basato sulla filtrazione delle chiamate di sistema, mentre Flatpak crea un contenitore separato dal sistema e opera con grandi insiemi di runtime, fornendo come dipendenze non pacchetti, ma sistemi ambientali standard (ad esempio, tutte le librerie necessarie per eseguire i programmi GNOME o KDE).

Oltre all'ambiente di sistema standard (runtime), installato tramite un apposito repository, vengono forniti ulteriori dipendenze (bundle) necessarie per il corretto funzionamento dell'applicazione. In totale, il runtime e il bundle formano il contenuto del container, dato che il runtime viene installato separatamente e viene associato a diversi container, permettendo di evitare la duplicazione di file di sistema comuni per i container. In un sistema possono coesistere più runtime diversi (GNOME, KDE) o versioni differenti dello stesso runtime (GNOME 3.26, GNOME 3.28). Un container con un'applicazione come dipendenza utilizza il binding solo a un determinato runtime, senza considerare i singoli pacchetti che compongono il runtime. Tutti gli elementi mancanti sono impacchettati direttamente insieme all'applicazione. Durante la creazione del container, il contenuto del runtime viene montato come la partizione /usr, mentre il bundle viene montato nella directory /app.

Il contenuto del runtime e dei container delle applicazioni è creato utilizzando la tecnologia OSTree, in cui l'immagine viene aggiornata in modo atomico da un repository simile a Git, consentendo di applicare metodi di controllo versioni ai componenti della distribuzione (per esempio, è possibile ripristinare rapidamente il sistema a uno stato precedente). I pacchetti RPM vengono traslati nel repository OSTree tramite un'apposita interfaccia. rpm-ostree. L'installazione e l'aggiornamento separati dei pacchetti all'interno dell'ambiente di lavoro non sono supportati; il sistema viene aggiornato non a livello di singoli componenti, ma interamente, modificando atomica il proprio stato. Sono forniti strumenti per l'applicazione incrementale degli aggiornamenti, eliminando la necessità di una sostituzione completa dell'immagine ad ogni aggiornamento.

L'ambiente isolato creato è completamente indipendente dalla distribuzione utilizzata e, con la corretta configurazione del pacchetto, non ha accesso ai file e ai processi dell'utente o del sistema principale, e non può accedere direttamente all'hardware, fatta eccezione per l'output tramite DRI e il sottosistema di rete. L'output video e l'organizzazione dell'input. è stata realizzata attraverso il protocollo Wayland o tramite il forwarding del socket X11. L'interazione con l'ambiente esterno si basa sul sistema di messaggistica DBus e su un'API Portal dedicata. Per l'isolamento viene utilizzato strato intermedio Bubblewrap e tecnologie di virtualizzazione dei container tradizionali per Linux, che si basano sull'uso di cgroups, spazi dei nomi (namespaces), Seccomp e SELinux. Per l'uscita audio viene utilizzato PulseAudio.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster