Chi amministra sistemi GNU/Linux, o anche solo li usa quotidianamente, conosce bene il problema: ogni distribuzione ha il proprio gestore di pacchetti, le proprie versioni delle librerie, i propri tempi di aggiornamento. Un pacchetto .deb pensato per Debian non gira su Fedora, una libreria disponibile su Arch potrebbe non esserci (o essere troppo vecchia, o troppo nuova) su Ubuntu LTS. Flatpak nasce proprio per rispondere a questo problema, proponendo un formato di distribuzione software universale, sandboxato e indipendente dalla distribuzione sottostante.
Cos'è Flatpak
Flatpak è un sistema di building e distribuzione per applicazioni desktop Linux, sviluppato inizialmente sotto il nome di xdg-app e oggi mantenuto da una comunità indipendente con il supporto di GNOME, KDE e di gran parte dell'ecosistema del software libero. L'idea di fondo è semplice: invece di affidarsi alle librerie di sistema, ogni applicazione Flatpak porta con sé (o condivide con altre app tramite i cosiddetti runtime) tutte le dipendenze di cui ha bisogno per funzionare, in un ambiente isolato dal resto del sistema.
Questo approccio risolve alla radice il problema della frammentazione: un'applicazione impacchettata come Flatpak funziona allo stesso modo su Ubuntu, Fedora, openSUSE, Debian o qualsiasi altra distribuzione supporti il runtime di base.
Come funziona: runtime, sandboxing e permessi
Tre concetti chiave definiscono l'architettura di Flatpak:
- Runtime condivisi: le applicazioni non includono ogni singola libreria, ma si appoggiano a runtime comuni (ad esempio quelli di GNOME o KDE), scaricati una sola volta e condivisi tra più app, con evidente risparmio di spazio disco.
- Sandboxing tramite Bubblewrap: ogni applicazione gira in un ambiente isolato, con accesso limitato al filesystem, alla rete e ai dispositivi, a meno che non le vengano concessi permessi espliciti. Questo è probabilmente l'aspetto più interessante dal punto di vista della sicurezza: un'app malevola o semplicemente scritta male non può, in teoria, compromettere l'intero sistema.
- Portal: per permettere alle app sandboxate di interagire comunque con il sistema (aprire file, fare screenshot, accedere alla webcam), Flatpak usa un sistema di portali basato su D-Bus, che media le richieste in modo controllato.
La gestione dei permessi si può affinare con strumenti come Flatseal, un'interfaccia grafica che permette di vedere e modificare a quali risorse ogni applicazione ha accesso — utile per chi, come chi amministra sistemi per un collettivo o un'associazione, tiene alla trasparenza di ciò che gira sulle macchine.
Flathub: il repository di riferimento
Se Flatpak è il formato, Flathub (flathub.org) è oggi il repository di fatto per distribuire pacchetti Flatpak, un po' come F-Droid per Android. Ospita migliaia di applicazioni, da software mainstream come LibreOffice, GIMP, Blender e Spotify, fino a strumenti più di nicchia. L'installazione è immediata:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gimp.GIMP
I vantaggi
- Indipendenza dalla distribuzione: uno sviluppatore compila una volta e distribuisce ovunque, senza dover mantenere pacchetti
.deb,.rpm, PKGBUILD, eccetera. - Versioni aggiornate senza rischi: si possono avere le ultime versioni delle applicazioni senza dover aggiornare l'intero sistema operativo, e senza il rischio di rompere le dipendenze di sistema — un problema molto sentito su distribuzioni "stabili" come Debian, che privilegiano l'affidabilità a scapito della freschezza dei pacchetti.
- Sicurezza per isolamento: il sandboxing riduce la superficie d'attacco, anche se — come vedremo — non è una soluzione magica.
- Convivenza di più versioni: si possono installare versioni diverse della stessa applicazione senza conflitti.
Le critiche e i limiti
Non è tutto oro quel che luccica, ed è giusto presentare la questione con onestà, soprattutto in un contesto come il nostro, orientato alla cultura del software libero e alla sostenibilità dei sistemi:
- Dimensione dei pacchetti: dover scaricare interi runtime (anche centinaia di MB) per la prima app che li richiede pesa su connessioni lente o dischi piccoli, per quanto poi i runtime siano condivisi tra più applicazioni.
- Frammentazione delle dipendenze: col tempo si accumulano più versioni di runtime differenti, ognuna mantenuta con tempi propri, il che può generare un package management "parallelo" da tenere sotto controllo con
flatpak uninstall --unused. - Sicurezza non assoluta: diversi ricercatori di sicurezza hanno evidenziato come molte applicazioni su Flathub richiedano permessi molto ampi (accesso all'intero home, alla rete senza restrizioni), vanificando parte dei benefici del sandboxing. Il sandboxing è forte solo quanto i permessi concessi.
- Integrazione col sistema: temi, icone, integrazione con il file manager o con il pannello di controllo possono risultare meno coerenti rispetto ai pacchetti nativi, anche se negli ultimi anni la situazione è migliorata parecchio.
- Governance di Flathub: essendo un repository centralizzato con criteri di pubblicazione propri, solleva le stesse domande di fiducia e decentralizzazione che si pongono per altri "app store" — un tema non banale per chi, come noi, promuove modelli orizzontali e distribuiti.
Flatpak, Snap e AppImage: un confronto rapido
Vale la pena spendere due righe sulle alternative, perché spesso vengono confuse:
- Snap (Canonical) segue una filosofia simile ma con un backend proprietario lato server (lo store centrale non è sostituibile), il che ha attirato non poche critiche dalla comunità del software libero.
- AppImage non richiede installazione né demoni in background: è un singolo file eseguibile "portatile", ma non offre sandboxing nativo né gestione centralizzata degli aggiornamenti.
Flatpak si posiziona a metà strada: apertura del formato e della governance (a differenza di Snap) e sicurezza/aggiornamenti centralizzati (a differenza di AppImage).
Perché ne parliamo
Per chi amministra infrastrutture con un'ottica di sostenibilità e autonomia tecnologica — come proviamo a fare con i progetti del collettivo — Flatpak rappresenta un compromesso interessante tra la libertà di scelta della distribuzione di base (che resta magari una Debian stabile, solida e ben mantenuta) e la possibilità di avere strumenti aggiornati senza compromettere l'affidabilità del sistema. Non sostituisce il gestore di pacchetti nativo, ma lo affianca in modo intelligente.
Come sempre, la raccomandazione è la stessa che diamo per ogni strumento: installare solo ciò che serve, controllare i permessi con strumenti come Flatseal, e mantenere un approccio critico anche verso le soluzioni "comode" — la comodità non deve mai sostituire la consapevolezza di cosa sta girando sulle nostre macchine.