Rilascio del sistema di pacchetti autosufficienti Flatpak 1.6.0

Pubblicato nuova versione stabile dello strumento Flatpak 1.6, che fornisce un sistema per la creazione di pacchetti autonomi, non legati a distribuzioni Linux specifiche e eseguiti in un contenitore speciale, che isola l'applicazione dal resto del sistema. Il supporto per l'esecuzione dei 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 supportati dal gestore di applicazioni GNOME integrato.

Le chiave novità nella versione Flatpak 1.6:

  • In API Portal è stato aggiunto il metodo CreateUpdateMonitor, che consente alle applicazioni di monitorare l'uscita di aggiornamenti e di richiederne l'installazione.
    Per vietare i diritti di installazione autonoma degli aggiornamenti da parte dell'applicazione, è possibile utilizzare il comando «flatpak permission-set flatpak updates $APPID no» (se si specifica «ask» invece di «no», verrà visualizzata ogni volta una finestra di dialogo per confermare l'aggiornamento);


  • Per semplificare la creazione di gestori, è stata proposta la libreria
    libportal, che consente di gestire eventi senza l'uso diretto dell'API Portal e senza analizzare i segnali ricevuti tramite D-Bus.
    Libportal fornisce semplici interfacce di lavoro asincrone per la maggior parte di «portali«;
  • È stato aggiunto un nuovo diritto «—socket=cups» per fornire accesso diretto al server di stampa CUPS;
  • I protocolli e l'API per la gestione dell'autenticazione sono stati modificati. È stato aggiunto un autenticatore per OCI (Open Container Initiative). È stata implementata la supporto all'installazione automatica degli autenticatori da un repository esterno flatpak. In FlatpakTransaction è stato aggiunto un gestore di callback per utilizzare l'autenticazione tramite login e password in modo simile al metodo di autenticazione HTTP basic;
  • È stato aggiunto il supporto per applicazioni e sistemi protetti che richiedono autenticazione all'avvio;
  • Il livello utilizzato per l'isolamento bubblewrap è stato aggiornato alla release 0.4.0;
  • È stato aggiunto il supporto opzionale per il controllo genitori attraverso l'utilizzo della libreria libmalcontent, che consente di limitare l'accesso a determinati tipi di contenuto;
  • Le estensioni ora vengono installate prima dell'applicazione, permettendo di avere un'applicazione funzionante subito dopo il completamento della sua installazione;
  • Sono state riprogettate le operazioni con i file temporanei, migliorando il funzionamento in condizioni di spazio su disco insufficiente;
  • Per eseguire il comando «flatpak enter» non è più necessario usare sudo;
  • Nei portali è stata aggiunta la possibilità di avviare ambienti isolati annidati (sub-sandbox) per processi figlio;
  • Sono stati aggiunti nuovi comandi «flatpak permission-set» e «permission-remove» per gestire l'installazione dei diritti;
  • È stata aggiunta l'opzione «flatpak install —or-update», che esegue un aggiornamento se l'applicazione è già installata;
  • È stato aggiunto il comando «flatpak mask» per bloccare la versione e vietare l'installazione di aggiornamenti;
  • Per le immagini nel formato OCI (Open Container Initiative) è stata aggiunta la supporto per l'associazione di etichette, la generazione della cronologia delle modifiche nell'immagine e l'inclusione di tipi mime Docker, oltre ai tipi mime OCI;
  • Nelle impostazioni è stata aggiunta la chiave default-languages per definire l'elenco delle lingue utilizzate, in aggiunta all'elenco di sistema.

Ricordiamo che agli sviluppatori di applicazioni Flatpak è data la possibilità di semplificare la distribuzione dei loro programmi, 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. Gli utenti attenti alla sicurezza possono utilizzare Flatpak per eseguire un'applicazione potenzialmente sospetta in un contenitore, consentendo l'accesso solo alle funzionalità di rete e ai file utente associati all'applicazione. Gli utenti interessati alle novità possono installare le versioni testate e stabili più recenti delle applicazioni senza dover apportare modifiche al sistema. Ad esempio, attualmente i pacchetti Flatpak 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 la dimensione del pacchetto, esso include soltanto le dipendenze specifiche per l'applicazione, mentre le librerie di sistema e grafiche di base (Gtk+, Qt, librerie GNOME e KDE, ecc.) sono strutturate come ambienti runtime modulabili. La principale differenza tra Flatpak e Snap è che Snap utilizza componenti dell'ambiente del sistema principale e isolamento basato su filtraggio delle chiamate di sistema, mentre Flatpak crea un container separato dal sistema e opera con ampie raccolte di runtime, fornendo come dipendenze non pacchetti, bensì ambienti di sistema standard (ad esempio, tutte le librerie necessarie per il funzionamento di programmi GNOME o KDE).

Oltre all'ambiente di sistema standard (runtime), installato tramite uno speciale repository, vengono fornite dipendenze aggiuntive (bundle) necessarie per il funzionamento dell'applicazione. In totale, runtime e bundle formano il contenuto del container, dato che il runtime viene installato separatamente e collegato a più container, il che consente di evitare la duplicazione di file di sistema comuni per i container. In un sistema possono essere installati diversi runtime (GNOME, KDE) o più versioni di uno stesso runtime (GNOME 3.26, GNOME 3.28). Il container con l'applicazione come dipendenza utilizza il collegamento solo a un determinato runtime, senza considerare i singoli pacchetti di cui è composto il runtime. Tutti gli elementi mancanti vengono confezionati direttamente insieme all'applicazione. Durante la creazione del container, il contenuto del runtime viene montato come partizione /usr, mentre il bundle viene montato nella directory /app.

Il contenuto del runtime e dei container delle applicazioni è costituito utilizzando la tecnologia OSTree, in cui l'immagine viene aggiornata in modo atomico da un repository simile a Git, consentendo l'applicazione di metodi di controllo versione ai componenti della distribuzione (ad esempio, è possibile ripristinare rapidamente il sistema a uno stato precedente). I pacchetti RPM vengono traslati nel repository OSTree tramite uno strato 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 nel complesso, modificando in modo atomico il proprio stato. Vengono 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, se configurato correttamente, 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 della sottosistema di rete. L'output grafico e l'organizzazione dell'input sono state implementate avviene utilizzando il protocollo Wayland o tramite il passaggio del socket X11. L'interazione con l'ambiente esterno è basata sul sistema di messaggistica DBus e su un'API Portals specifica. Per l'isolamento viene utilizzato strato intermedio Bubblewrap e le tecnologie tradizionali di virtualizzazione dei container in Linux, basate sull'uso di cgroups, spazi dei nomi (namespaces), Seccomp e SELinux. Per l'output 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