nuova versione stabile dell'ambiente di sviluppo , che fornisce un sistema per la creazione di pacchetti autonomi, non legati a specifiche distribuzioni Linux e eseguiti in un contenitore speciale, isolando l'applicazione dal resto del sistema. Il supporto per l'esecuzione dei pacchetti Flatpak è garantito per Arch Linux, , 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 nella versione Flatpak 1.8:
- È semplificata l'implementazione dell'installazione in modalità P2P (permette di organizzare il download di applicazioni e runtime tramite nodi intermedi o unità per sistemi senza connessione di rete). È stata interrotta la supporto all'installazione tramite host intermedi sulla rete locale. L'auto-download dei repository (sideload) posizionati su unità USB locali è disattivato di default. Per attivare i repository locali intermedi, è necessario configurare il repository creando un collegamento simbolico da /var/lib/flatpak/sideload-repos o
/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность. - è stato aggiunto un unit systemd opzionale per la rilevazione automatica di repository aggiuntivi su unità USB esterne collegate.
- Per le applicazioni che hanno accesso al file system, è stato fornito il pass-through della directory /lib dall'ambiente host a /run/host/lib.
- Sono stati aggiunti nuovi permessi di accesso al FS — "host-etc" e "host-os", che consentono l'accesso alle cartelle di sistema /etc e /usr.
- Per generare un codice più efficiente per l'analisi dei file GVariant da ostreee è stato coinvolto .
- Nella crittografia di configurazione è stata fornita la possibilità di compilare senza
libsystemd; - È stato garantito il montaggio dei socket del Journal in modalità di sola lettura.
- Nell'export-document è stato aggiunto il supporto per l'esportazione di directory.
- È stato consentito l'accesso diretto alle unità audio ALSA per le applicazioni con accesso a Pulseaudio.
- Nell'API è stato aggiunto il segnale "install-authenticator", che può essere utilizzato dai client per installare gli autenticatori necessari per completare la transazione.
- È stata garantita l'utilizzazione dei dati relativi ai fusi orari basati su /etc/localtime dal sistema host, risolvendo i problemi legati ai fusi orari in alcune applicazioni.
- L'installazione del file env.d da gdm è stata interrotta, poiché i generatori systemd gestiscono meglio questa operazione.
- Nell'utility create-usb è stata attivata di default l'esportazione di commit parziali.
- È stata fornita la consegna del file sysusers.d per creare, tramite systemd, gli utenti necessari.
- Nei comandi "flatpak remote-add" e "flatpak modify" è stata aggiunta l'opzione "—[no-]follow-redirect" per proibire/consentire il reindirizzamento a un altro repository.
- Nel sistema
è stato aggiunto l'API Spawn per ottenere l'identificatore di processo reale (PID) dell'applicazione avviata. - Tutti i repository OCI (Open Container Initiative) sono stati convertiti per utilizzare l'autenticatore flatpak-oci-authenticator.
- Nei comandi "flatpak remote-info" e "flatpak update" è stata aggiunta l'opzione "—commit=" per specificare una versione determinata dei repository OCI.
- È stato aggiunto il supporto iniziale per aggiornamenti delta per i repository OCI.
- È stato aggiunto il comando "flatpak upgrade", che è un alias del comando "flatpak update".
- Sono stati implementati scenari di completamento per la shell fish.
Ricordiamo che Flatpak offre agli sviluppatori di applicazioni la possibilità di semplificare la distribuzione dei loro programmi, non inclusi nei repository ufficiali delle distribuzioni, tramite un contenitore universale senza la necessità di creare build separate per ogni distribuzione. A coloro che si preoccupano della sicurezza, Flatpak consente di eseguire applicazioni sospette all'interno di un contenitore, fornendo accesso solo alle funzioni di rete e ai file degli utenti relativi all'applicazione. A coloro che sono interessati alle novità, Flatpak consente di installare le versioni più recenti e di test delle applicazioni senza necessità di modifiche al sistema. Ad esempio, attualmente i pacchetti Flatpak sono già disponibili per LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio e altro.
Per ridurre la dimensione del pacchetto, include solo le dipendenze specifiche per l'applicazione, mentre le librerie di sistema e grafiche di base (Gtk+, Qt, librerie GNOME e KDE, ecc.) sono fornite come ambienti runtime standardizzati. La principale differenza tra Flatpak e Snap è che Snap utilizza componenti dell'ambiente del sistema principale e isolamento basato sulla filtrazione delle chiamate di sistema, mentre Flatpak crea un contenitore separato dal sistema e opera con grandi set di runtime, fornendo come dipendenze non pacchetti, ma ambienti di sistema standardizzati (ad esempio, tutte le librerie necessarie per funzionare con programmi GNOME o KDE).
Oltre all'ambiente di sistema standard (runtime), installato tramite un apposito , 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 , 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. . 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 le opportune impostazioni del pacchetto, non ha accesso ai file e ai processi dell'utente o del sistema principale, non può accedere direttamente all'hardware, ad eccezione dell'uscita tramite DRI, e del sottosistema di rete. Uscita grafica e organizzazione dell'input 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 strato intermedio 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
