In questo tutorial vedremo cos'è Flatpak, come installare Flatpak su Linux e poi come utilizzare l'interfaccia utente della riga di comando Flatpak per installare le applicazioni.
Introduzione a Flatpak
Ci sono così tante distribuzioni Linux e applicazioni di packaging per tutte quelle distribuzioni Linux è un compito piuttosto dispendioso in termini di tempo e difficile. Anche se esistono molti convertitori di pacchetti, tutti hanno problemi di funzionalità e compatibilità limitati.
Per ovviare a questo problema, un formato di pacchetto dell'applicazione denominato Snap è stato introdotto da Canonical. Gli snap sono inizialmente sviluppati per il sistema operativo Ubuntu, ma ora sono adottati dalle principali distribuzioni Linux tra cui Arch, Gentoo, Fedora, openSUSE ecc.
Uno snap è un singolo pacchetto binario in bundle con tutte le librerie e le dipendenze richieste. Puoi installarlo su qualsiasi distribuzione Linux, indipendentemente dalla sua versione e architettura. Non c'è bisogno di sviluppare un'applicazione separata per ogni distribuzione!
Simile a Snap, esiste ancora un altro strumento per il formato del pacchetto dell'applicazione chiamato Flatpak . Flatpak è un sistema per costruire, installare ed eseguire applicazioni e runtime su diverse distribuzioni Linux.
Ora puoi creare una singola applicazione Flatpak e installarla su diverse versioni di Linux. Non devi preoccuparti delle librerie e delle dipendenze, tutto è racchiuso in un'unica app stessa.
Un'altra caratteristica degna di nota è che possiamo installare più versioni della stessa applicazione contemporaneamente nel sistema Linux. Ad esempio, è possibile installare il lettore VLC versione 2.1, 2.2 e 2.3 sullo stesso sistema. Se sei uno sviluppatore, puoi testare diverse versioni di un'applicazione alla volta.
Flatpak è stato originariamente sviluppato da Alex Larsson e successivamente approvato da Red Hat, Endless Computers e Collabora. Ora è attivamente mantenuto da una comunità indipendente, composta da contributori, volontari e organizzazioni di supporto. Il framework Flatpak è scritto in C e rilasciato sotto LGPL licenza.
Tempi di esecuzione
Ogni applicazione flatpak dipende da un runtime per funzionare correttamente su un sistema host. Un runtime non è altro che un insieme di dipendenze di base (librerie) richieste da un'applicazione.
Quando installiamo un'applicazione utilizzando il comando flatpak, verrà automaticamente installato un runtime. I runtime sono indipendenti dalla distribuzione, quindi possono funzionare su qualsiasi distribuzione Linux. Più di un'applicazione può utilizzare un singolo runtime.
Attualmente sono disponibili tre runtime principali:Freedesktop , GNOME e KDE . Questi sono tutti ospitati su Flathub deposito.
Librerie in bundle
Le librerie che non sono disponibili in un runtime vengono raggruppate insieme all'applicazione dagli sviluppatori. Le librerie possono anche essere versioni di librerie diverse da quelle che si trovano in un runtime e/o versioni patchate di librerie.
Sandbox
Un'app Flaptpak viene creata ed eseguita in un ambiente isolato noto come "Sandbox". In altre parole, le app flatpak sono isolate dal resto del sistema operativo host e da altre applicazioni.
Ogni sandbox contiene l'applicazione e il relativo runtime. Un'applicazione flatpak può accedere solo ai contenuti della sua sandbox per impostazione predefinita. L'accesso ai file utente, alla rete, alla grafica e ai dispositivi deve essere esplicitamente fornito dall'utente.
Repository
Tutte le applicazioni flatpak ei relativi runtime sono archiviati in una posizione centrale denominata "Repository". Hub piatto è il repository ufficiale di tutte le applicazioni Flatpak. Possiamo accedere e installare le applicazioni e i runtime utilizzando l'interfaccia a riga di comando flatpak.
Installa Flatpak su Linux
Flatpak è disponibile nei repository predefiniti delle distribuzioni Linux più diffuse come Arch Linux, Debian, Fedora, Gentoo, Red Hat, Linux Mint, openSUSE, Solus, Mageia e le distribuzioni Ubuntu.
Per installare Flatpak su Arch Linux e le sue varianti come EndeavourOS e Manjaro Linux , esegui:
$ sudo pacman -S flatpak
Flatpak è disponibile nei repository predefiniti di Debian Buster e versioni più recenti. Per installare Flatpak su Debian, eseguire:
$ sudo apt install flatpak
Se stai usando GNOME DE su Debian, installa il plugin Flatpak per il software GNOME usando il comando:
$ sudo apt install gnome-software-plugin-flatpak
Su Fedora , Flatpak è installato per impostazione predefinita. Tutto quello che devi fare è abilitare abilita Flathub come descritto nella sezione successiva.
Nel caso in cui non fosse installato per qualsiasi motivo, esegui:
$ sudo dnf install flatpak
Su RHEL 7 , esegui:
$ sudo yum install flatpak
Su CentOS 7 , Flatpak è installato per impostazione predefinita. Quindi nessuna configurazione richiesta!
A partire da Linux Mint 18.3 , flatpak è installato per impostazione predefinita. Quindi, nessuna configurazione richiesta.
Su openSUSE Tumbleweed, Flatpak può essere installato utilizzando Zypper:
$ sudo zypper install flatpak
Su Ubuntu 18.10 (Cosmic Seppie) e versioni successive di Ubuntu, installa flatpak usando questo comando:
$ sudo apt install flatpak
Nelle versioni precedenti di Ubuntu, aggiungi il seguente repository e installa Flatpak come mostrato di seguito.
$ sudo add-apt-repository ppa:alexlarsson/flatpak
$ sudo apt update
$ sudo apt install flatpak
Il plug-in Flatpak per l'app GNOME Software consente di installare app senza bisogno della riga di comando. Per installare questo plugin, esegui:
$ sudo apt install gnome-software-plugin-flatpak
Su Solo , installa flatpak usando il comando:
$ sudo eopkg install flatpak xdg-desktop-portal-gtk
Su Mageia 6 e versioni successive, puoi installare Flatpak con DNF:
$ sudo dnf install flatpak
In alternativa, installa con urpmi
, come di seguito:
$ sudo urpmi flatpak
Pop!_OS 20.04 ha Flatpak installato e Flathub configurato per impostazione predefinita. Se stai utilizzando Pop!_OS 19.10 o versioni precedenti, esegui:
$ sudo apt install flatpak
sistema operativo elementare 5.1 e il più recente viene fornito con il supporto Flatpak pronto all'uso.
Per altre distribuzioni Linux, fare riferimento al link di installazione ufficiale .
Una guida per principianti al Flatpak
Esistono molte applicazioni popolari come Gimp, Kdenlive, Steam, Spotify e Visual Studio Code ecc., disponibili come flatpak. Per installare un'app flatpak, dobbiamo prima aggiungere repository flatpak (o telecomandi).
1. Aggiungi repository remoti
Come ho già detto, le applicazioni e i runtime sono archiviati in un repository o in remoto. Il repository ufficiale per flatpak è Flathub .
Per abilitare il repository Flathub su Linux, esegui semplicemente questo comando:
$ sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Sono disponibili molti altri repository flatpak non ufficiali. Fai una rapida ricerca sul web per trovarli.
2. Elenca i telecomandi
Per elencare tutti i repository remoti configurati, esegui:
$ flatpak remotes
Risultato di esempio:
Name Options flathub system
Come puoi vedere, il comando sopra elenca i telecomandi che hai aggiunto nel tuo sistema. Elenca anche se il telecomando è stato aggiunto per utente o a livello di sistema. Nel mio caso, ho aggiunto il repository flathub a livello di sistema.
3. Installa le applicazioni Flatpak
In questa sezione vedremo come installare le app flatpak.
Per installare un'applicazione Flatpak, ad esempio GNOME box, eseguire:
$ flatpak install flathub org.gnome.Boxes
Il comando precedente installerà l'applicazione a livello di sistema.
Se non desideri installare app a livello di sistema, puoi anche installare app flatpak per utente come di seguito.
$ flatpak install --user <name-of-app>
Tutte le app installate verranno archiviate in $HOME/.var/app/
posizione.
$ ls $HOME/.var/app/ com.github.calo001.fondo com.github.tchx84.Flatseal org.gnome.Boxes
4. Esegui le applicazioni Flatpak
È possibile avviare le applicazioni installate in qualsiasi momento dal programma di avvio delle applicazioni. Dalla riga di comando, puoi eseguirlo, ad esempio GNOME box, usando il comando:
$ flatpak run org.gnome.Boxes
Flatpak aggiungerà le voci di menu per tutte le app flatpak. Quindi puoi avviare direttamente dal menu o dall'utilità di avvio dell'applicazione.
5. Cerca applicazioni flatpak
Per cercare un'applicazione:
$ flatpak search gimp
Risultato di esempio:
Name Description Application ID Version Branch Remotes GNU Image Manipulati… Create images and edit photographs org.gimp.GIMP 2.10.20 stable flathub GIMP User Manual GIMP User Manual org.gimp.GIMP.Manual 2.10 2.10 flathub Resynthesizer Set of GIMP plug-ins that heal (in-paint), synthesize texture, theme an image, and more …p.GIMP.Plugin.Resynthesizer 2.0.3 2-3.36 flathub GimpLensfun GimpLensfun is a Gimp plugin to correct lens distortion using the lensfun library and database. org.gimp.GIMP.Plugin.Lensfun 0.2.4 2-3.36 flathub Fourier A simple GIMP plug-in to do fourier transform on your image. org.gimp.GIMP.Plugin.Fourier 0.4.3 2-3.36 flathub BIMP Batch Image Manipulation Program, a GIMP plugin to apply a set of manipulations to an entire gr… org.gimp.GIMP.Plugin.BIMP 2.4 2-3.36 flathub LiquidRescale LiquidRescale plugin to resize pictures non uniformly while preserving their features, i.e. avo… …p.GIMP.Plugin.LiquidRescale 0.7.2 2-3.36 flathub G'MIC GREYC's Magic for Image Computing org.gimp.GIMP.Plugin.GMic 2.9.2 2-3.36 flathub FocusBlur Focus Blur plug-in crete a blurring effect similar to Depth of Field. ….gimp.GIMP.Plugin.FocusBlur 3.2.6 2-3.36 flathub Glimpse Create images and edit photographs org.glimpse_editor.Glimpse 0.2.0 stable flathub Scans to PDF Create small, searchable PDFs from scanned documents com.github.unrud.djpdf 0.1.2 stable flathub
Questo comando restituirà tutte le applicazioni che corrispondono alla stringa "gimp" da tutti i telecomandi.
6. Elenca le applicazioni flatpak e i runtime installati localmente
Per visualizzare tutte le applicazioni flatpak e i runtime installati sul tuo sistema, esegui:
$ flatpak list
Risultato di esempio:
Name Application ID Version Branch Installation Fondo com.github.calo001.fondo 1.3.8 stable system Flatseal com.github.tchx84.Flatseal 1.5.2 stable system default …reedesktop.Platform.GL.default 19.08 system Intel …eedesktop.Platform.VAAPI.Intel 19.08 system openh264 ….freedesktop.Platform.openh264 2.1.0 2.0 system GNOME Boxes org.gnome.Boxes 3.36.6 stable system GNOME Application Platform ve… org.gnome.Platform 3.36 system Ambiance Gtk theme org.gtk.Gtk3theme.Ambiance 3.22 system Yaru-light Gtk Theme org.gtk.Gtk3theme.Yaru-light 3.22 system
Se desideri visualizzare l'elenco delle applicazioni installate e dei runtime con dimensione installata , usa -d
bandiera.
$ flatpak list -d
Risultato di esempio:
… … … Version Branch Arch Origin Installation Ref Active commit Latest commit Installed size … … … … 1.3.9 stable x86_64 flathub system com.github.calo001.fondo/x86_64/stable 4755529773f0 - 89.3 MB … … … … 1.6.2 stable x86_64 flathub system com.github.tchx84.Flatseal/x86_64/stable 4e1efc03269e - 2.9 MB … … … 19.08 x86_64 flathub system org.freedesktop.Platform.GL.default/x86_64/19.08 f68c8e930d04 - 255.7 MB … … … 19.08 x86_64 flathub system org.freedesktop.Platform.VAAPI.Intel/x86_64/19.08 19fe8e74d641 - 37.0 MB … … … … 2.1.0 2.0 x86_64 flathub system org.freedesktop.Platform.openh264/x86_64/2.0 73f998362a6f - 778.2 kB … … … … 3.36.6 stable x86_64 flathub system org.gnome.Boxes/x86_64/stable 98c619ed7873 - 706.9 MB … … … … 3.36 x86_64 flathub system org.gnome.Platform/x86_64/3.36 d79ff93caf2d - 934.6 MB … … … … 3.22 x86_64 flathub system org.gtk.Gtk3theme.Ambiance/x86_64/3.22 73fed99df212 - 16.3 MB … … … … 3.22 x86_64 flathub system org.gtk.Gtk3theme.Yaru-light/x86_64/3.22 2573259417d8 - 718.3 kB …
Elenca solo i runtime con il comando:
$ flatpak list --runtime
Risultato di esempio:
Name Application ID Version Branch Installation Locale com.github.calo001.fondo.Locale stable system default …reedesktop.Platform.GL.default 19.08 system Intel …eedesktop.Platform.VAAPI.Intel 19.08 system openh264 ….freedesktop.Platform.openh264 2.1.0 2.0 system Locale org.gnome.Boxes.Locale stable system GNOME Application Platform ve… org.gnome.Platform 3.36 system Ambiance Gtk theme org.gtk.Gtk3theme.Ambiance 3.22 system Yaru-light Gtk Theme org.gtk.Gtk3theme.Yaru-light 3.22 system
Per visualizzare solo le applicazioni, non i tempi di esecuzione, utilizza invece questo comando.
$ flatpak list --app
Risultato di esempio:
Name Application ID Version Branch Installation Fondo com.github.calo001.fondo 1.3.8 stable system Flatseal com.github.tchx84.Flatseal 1.5.2 stable system GNOME Boxes org.gnome.Boxes 3.36.6 stable system
7. Elenca le applicazioni remote e i runtime
Puoi anche visualizzare l'elenco delle applicazioni disponibili e dei runtime anche dai repository remoti.
Per elencare applicazioni e runtime da tutti i telecomandi usando il comando:
$ flatpak remote-ls
Elenca solo i tempi di esecuzione:
$ flatpak remote-ls --runtime
Elenca solo le applicazioni:
$ flatpak remote-ls --app
Elenca le applicazioni e i runtime da un repository specifico, ad esempio flathub , esegui:
$ flatpak remote-ls flathub
Per elencare solo le applicazioni da un repository remoto, esegui:
$ flatpak remote-ls flathub --app
8. Aggiorna le applicazioni flatpak
Per aggiornare tutte le tue applicazioni flatpak, esegui:
$ flatpak update
Per aggiornare un'applicazione specifica, facciamo:
$ flatpak update org.gnome.Boxes
9. Visualizza i dettagli di un'applicazione flatpak
Per visualizzare i dettagli di un'applicazione installata, eseguire:
$ flatpak info org.gnome.Boxes
Risultato di esempio:
GNOME Boxes - Simple remote and virtual machines ID: org.gnome.Boxes Ref: app/org.gnome.Boxes/x86_64/stable Arch: x86_64 Branch: stable Version: 3.36.6 License: LGPL-2.1+ Origin: flathub Collection: org.flathub.Stable Installation: system Installed: 706.9 MB Runtime: org.gnome.Platform/x86_64/3.36 Sdk: org.gnome.Sdk/x86_64/3.36 Commit: 98c619ed78736e85433bcbecd5c4392ad30d4890a71ddc909f5b4c51dfcde340 Parent: 72ec972e0ce7fdf640f478d406a8acad5f90ebd1f8c0ac330baa7ed3dd5ccd70 Subject: Build vte from git master (a8cf05d9) Date: 2020-09-02 10:02:20 +0000
10. Disinstalla le applicazioni flatpak
Per rimuovere un'applicazione flatpak, esegui:
$ sudo flatpak uninstall org.gnome.Boxes
11. Rimuovere i repository remoti
Per rimuovere un telecomando, ad esempio flathub:
$ sudo flatpak remote-delete flathub
Qui, mozzo piatto è il nome del telecomando.
12. Rimuovi i runtime inutilizzati
Dopo aver rimosso tutte le applicazioni che dipendono da un runtime specifico, il runtime stesso non verrà rimosso automaticamente.
Per rimuovere i runtime e le estensioni che non vengono utilizzati da nessuna applicazione installata, esegui:
$ flatpak uninstall --unused
13. Rimuovere la cache del flatpak
Per rimuovere la cache flatpak rimanente nel tmp
posizione, esegui:
$ sudo bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*"
Se stai usando systemd
come gestore di sistema predefinito, puoi automatizzare l'attività di pulizia della cache residua del flatpak come di seguito.
Crea un file di servizio denominato clear_flatpak_cache.service
in /lib/systemd/system/
directory con i seguenti contenuti:
[Unit] Description=Flatpak cache cleaner [Service] ExecStart=bash -c "! pgrep -x flatpak && rm -r /var/tmp/flatpak-cache-*" [Install] WantedBy=multi-user.target
Avvia e abilita questo servizio all'avvio:
$ sudo systemctl enable --now clear_flatpak_cache
D'ora in poi, i file di cache flatpak rimanenti verranno cancellati all'avvio.
14. Riparare l'installazione del flatpak
Possiamo riparare un'installazione flatpak eliminando e reinstallando gli oggetti non validi.
Per farlo, esegui:
$ flatpak repair
Puoi anche eseguire riparazioni per utente e per sistema con --user
e --system
bandiere.
Ripara l'installazione per utente:
$ flatpak repair --user
Ripara l'installazione per sistema:
$ flatpak repair --system
15. Visualizza la cronologia dei flatpak
Potresti aver installato alcune app, aggiornate o rimosse. Tutte le transazioni flatpak verranno registrate da flatpak.
Puoi guardare questi registri per scoprire quali modifiche sono state apportate alla tua installazione Flatpak nel tempo.
$ flatpak history
16. Visualizza la sezione della guida di flatpak
Per assistenza flatpak, eseguire:
$ flatpak --help
Questo comando visualizzerà l'elenco di tutte le opzioni e i sottocomandi flatpak disponibili con una piccola descrizione.
Conclusione
Questo tutorial di flatpak ti ha fornito una breve introduzione a Flatpak e alle tecnologie sottostanti utilizzate in Flatpak come runtime, telecomandi, librerie in bundle e sandbox ecc. E poi, ha anche spiegato come installare e utilizzare flatpak su distribuzioni Linux.
Lettura consigliata:
- Come configurare facilmente le autorizzazioni delle app Flatpak con Flatseal
- Gestori di pacchetti Linux a confronto:AppImage vs Snap vs Flatpak