Rilascio del sistema di pacchetti autosufficienti Flatpak 1.6.0

pubblicato nuovo ramo stabile del toolkit Flatpack 1.6, che fornisce un sistema per creare pacchetti autonomi che non sono legati a distribuzioni Linux specifiche e vengono eseguiti in un contenitore speciale che isola l'applicazione dal resto del sistema. Il supporto per l'esecuzione dei pacchetti Flatpak è fornito per Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint e Ubuntu. I pacchetti Flatpak sono inclusi nel repository Fedora e sono supportati dal gestore applicazioni nativo di GNOME.

Chiave innovazioni nel ramo Flatpak 1.6:

  • В Portale API è stato aggiunto il metodo CreateUpdateMonitor che consente alle applicazioni di monitorare l'aspetto degli aggiornamenti e richiedere l'installazione dell'aggiornamento aggiornato.
    Per negare a un'applicazione il permesso di installare gli aggiornamenti in modo indipendente, è possibile utilizzare il comando "flatpak Permission-set flatpak Updates $APPID no" (se si specifica "chiedi" invece di "no", verrà visualizzata ogni volta una finestra di dialogo per confermare l'autorizzazione aggiornamento);


  • Per semplificare la creazione dei gestori, viene proposta una libreria
    libportal, che rende possibile elaborare eventi senza utilizzare direttamente l'API del portale e analizzare i segnali provenienti da D-Bus.
    Libportal fornisce semplici livelli asincroni per la maggior parte dei "portali";

  • Aggiunta la nuova autorizzazione "--socket=cups" per fornire accesso diretto al server di stampa CUPS;
  • Modificato il protocollo e l'API per la gestione dell'autenticazione. Aggiunto autenticatore per OCI (Open Container Initiative). Supporto implementato per l'installazione automatica degli autenticatori dal repository flatpak esterno. Un gestore di callback è stato aggiunto a FlatpakTransaction per utilizzare l'autenticazione di login e password, simile al metodo di autenticazione di base HTTP;
  • Aggiunto supporto per applicazioni e sistemi protetti che richiedono l'autenticazione all'avvio;
  • Lo strato di pluriball utilizzato per l'isolamento è stato aggiornato al rilascio 0.4.0;
  • Aggiunto supporto opzionale per il controllo genitori tramite l'applicazione della libreria libmalcontent, che consente di limitare l'accesso a determinati tipi di contenuti;
  • Le estensioni vengono ora installate prima dell'applicazione, consentendoti di ottenere un'applicazione funzionante immediatamente dopo aver completato la sua installazione;
  • Sono state rielaborate le manipolazioni con i file temporanei, il che ha migliorato le prestazioni in caso di mancanza di spazio libero su disco;
  • Per eseguire il comando "entra nel flatpak"Non è più necessario utilizzare sudo;
  • Ai portali è stata aggiunta la possibilità di lanciare ambienti isolati nidificati (sub-sandbox) per i processi figli;
  • Aggiunti nuovi comandi "flatpak consent-set" e "permission-remove" per controllare l'impostazione dei permessi;
  • Aggiunta l'opzione “flatpak install --or-update”, che esegue un aggiornamento se l'applicazione è già installata;
  • Aggiunto il comando “flatpak mask” per correggere la versione e vietare l'installazione di aggiornamenti;
  • Per le immagini nel formato OCI (Open Container Initiative), è stato aggiunto il supporto per associare etichette, generare una cronologia delle modifiche nell'immagine e abilitare i tipi mime docker, oltre ai tipi mime OCI;
  • Nelle impostazioni è stata aggiunta la chiave default-linguals per definire la lista delle lingue utilizzate, oltre alla lista di sistema.

Ricordiamo che Flatpak consente agli sviluppatori di applicazioni di semplificare la distribuzione dei loro programmi che non sono inclusi nei repository di distribuzione standard tramite formazione un contenitore universale senza creare gruppi separati per ogni distribuzione. Per gli utenti attenti alla sicurezza, Flatpak consente di eseguire un'applicazione discutibile in un contenitore, fornendo accesso solo alle funzioni di rete e ai file utente associati all'applicazione. Per gli utenti interessati ai nuovi prodotti, Flatpak consente di installare le ultime versioni test e stabili delle applicazioni senza la necessità di apportare modifiche al sistema. Ad esempio, attualmente i pacchetti Flatpak lo sono già lo faranno per LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, ecc.

Per ridurre le dimensioni del pacchetto, include solo dipendenze specifiche dell'applicazione e il sistema di base e le librerie grafiche (Gtk+, Qt, librerie GNOME e KDE, ecc.) sono progettate come ambienti runtime standard plug-in. La differenza fondamentale tra Flatpak e Snap è che Snap utilizza i componenti dell'ambiente di sistema principale e l'isolamento basato sul filtraggio delle chiamate di sistema, mentre Flatpak crea un contenitore separato dal sistema e opera con ampi set di runtime, fornendo non pacchetti come dipendenze, ma standard propri ambienti di sistema (ad esempio, tutte le librerie necessarie per il funzionamento dei programmi GNOME o KDE).

Oltre all'ambiente di sistema standard (runtime), installato tramite uno speciale deposito, vengono fornite le dipendenze aggiuntive (bundle) necessarie per il funzionamento dell'applicazione. In totale, runtime e bundle formano il riempimento del contenitore, nonostante il runtime sia installato separatamente e legato a più contenitori contemporaneamente, il che consente di evitare la duplicazione dei file di sistema comuni ai contenitori. Un sistema può avere diversi runtime installati (GNOME, KDE) o diverse versioni dello stesso runtime (GNOME 3.26, GNOME 3.28). Un contenitore con un'applicazione come dipendenza utilizza un'associazione solo a un runtime specifico, senza tenere conto dei singoli pacchetti che compongono il runtime. Tutti gli elementi mancanti vengono impacchettati direttamente con l'applicazione. Quando viene formato un contenitore, i contenuti di runtime vengono montati come partizione /usr e il bundle viene montato nella directory /app.

Il riempimento dei contenitori runtime e applicativi viene formato utilizzando la tecnologia OSTree, in cui l'immagine viene aggiornata atomicamente da un repository simile a Git, che consente di applicare metodi di controllo della versione ai componenti della distribuzione (ad esempio, è possibile ripristinare rapidamente il sistema a uno stato precedente). I pacchetti RPM vengono tradotti nel repository OSTree utilizzando un livello speciale 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 dei singoli componenti, ma nel suo insieme, modificando atomicamente il suo stato. Fornisce strumenti per applicare gli aggiornamenti in modo incrementale, eliminando la necessità di sostituire completamente l'immagine con ogni aggiornamento.

L'ambiente isolato generato è 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 alle apparecchiature, ad eccezione dell'output tramite DRI, e sottosistema di rete. Output grafico e organizzazione dell'input implementato utilizzando il protocollo Wayland o tramite socket forwarding X11. L'interazione con l'ambiente esterno si basa sul sistema di messaggistica DBus e su una speciale API Portali. Per l'isolamento usato interstrato pluriball e le tradizionali tecnologie di virtualizzazione dei contenitori Linux basate sull'uso di cgroup, namespace, Seccomp e SELinux. PulseAudio viene utilizzato per emettere il suono.

Fonte: opennet.ru

Aggiungi un commento