Rilascio del sistema di pacchetti autonomi Flatpak 1.6.0

Pubblicato nuova versione stabile dell'ambiente di sviluppo Flatpak 1.6, 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.6:

  • In API Portal aggiunto il metodo CreateUpdateMonitor, che consente alle applicazioni di monitorare la disponibilità di aggiornamenti e di richiedere l'installazione dell'aggiornamento disponibile.
    Per vietare all'applicazione di installare autonomamente aggiornamenti, è possibile utilizzare il comando «flatpak permission-set flatpak updates $APPID no» (se si specifica «ask» invece di «no», verrà visualizzata una finestra di dialogo ogni volta per confermare l'aggiornamento);


  • Per semplificare la creazione di gestori è stata proposta la libreria
    libportal, che consente di gestire eventi senza utilizzare direttamente l'API Portal e senza analizzare i segnali provenienti tramite D-Bus.
    Libportal fornisce semplici intermediari che lavorano in modo asincrono per la maggior parte dei «portali«;
  • Aggiunto un nuovo permesso «—socket=cups» per fornire accesso diretto al server di stampa CUPS;
  • Modificati il protocollo e l'API per la gestione dell'autenticazione. Aggiunto un autenticatore per OCI (Open Container Initiative). Implementato il supporto per l'installazione automatica degli autenticatori da un repository esterno flatpak. Nella FlatpakTransaction è stato aggiunto un gestore di callback per utilizzare l'autenticazione tramite nome utente e password, simile al metodo di autenticazione HTTP basic;
  • Aggiunto supporto per applicazioni protette e sistemi che richiedono autenticazione all'avvio;
  • Il layer utilizzato per l'isolamento bubblewrap è stato aggiornato all'ultima versione 0.4.0;
  • Aggiunto supporto opzionale per il controllo parentale tramite l'uso della libreria libmalcontent, permettendo di limitare l'accesso a determinati tipi di contenuti;
  • Le estensioni vengono ora installate prima dell'applicazione, consentendo di avere l'applicazione funzionante immediatamente dopo il completamento dell'installazione;
  • Ristrutturati i processi di gestione dei file temporanei, migliorando le prestazioni in condizioni di spazio su disco insufficiente;
  • Per eseguire il comando «flatpak enter» non è più necessario utilizzare sudo;
  • Nei portali è stata aggiunta la possibilità di avviare ambienti isolati annidati (sub-sandbox) per processi figli;
  • Aggiunti nuovi comandi «flatpak permission-set» e «permission-remove» per gestire l'installazione dei permessi;
  • Aggiunta l'opzione «flatpak install —or-update», che esegue un aggiornamento se l'applicazione è già installata;
  • Aggiunto il comando «flatpak mask» per fissare la versione e vietare l'installazione di aggiornamenti;
  • Per le immagini nel formato OCI (Open Container Initiative) è stato aggiunto il supporto per l'assegnazione di etichette, la generazione di cronologie delle modifiche nell'immagine e l'inclusione dei mime-type docker, oltre ai mime-type OCI;
  • Nelle impostazioni è stata aggiunta la chiave default-languages per specificare l'elenco delle lingue utilizzate, oltre all'elenco predefinito del sistema.

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 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à 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 versione ai componenti della distribuzione (ad esempio, è possibile ripristinare rapidamente il sistema a uno stato precedente). I pacchetti RPM vengono tradotti nel repository OSTree tramite un layer 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 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 giuste impostazioni dei pacchetti, non ha accesso ai file e ai processi dell'utente o del sistema principale, non può interagire direttamente con l'hardware, ad eccezione dell'output tramite DRI, e del sottosistema di rete. L'output grafico e l'organizzazione dell'input sono state implementate 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, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster