Indice articolo
- 1 Il formato AppImage
- 2 Scarica, rendi eseguibile, esegui
- 3 Snap vs Flatpak vs AppImage
- 4 Dove trovare programmi per Linux in formato AppImage
- 5 Come eseguire programmi AppImage in Linux
- 6 Limiti e svantaggi del formato AppImage
- 7 Come integrare manualmente AppImage in Linux Mint
- 8 Utilità per l’integrazione di AppImage nel sistema
- 9 La mia esperienza con AppImage… e la tua
Guida completa al formato alternativo AppImage di software portatile per Linux. Vediamo le caratteristiche, i pro e contro. Poi dove trovarli, come usarli in sicurezza e come integrarli al meglio nel sistema manualmente o tramite alcune utilità.
Il formato AppImage
AppImage è un formato alternativo di distribuzione di software per Linux rispetto alle forme tradizionali basate su gestori pacchetti e repository. Permette di distribuire software portatile che non necessita di installazione, non richiede permessi amministrativi per l’esecuzione e, in linea generale, può essere eseguito in qualunque versione di qualunque distribuzione GNU/Linux.
Un file AppImage altro non è che un’immagine compressa del programma che include inoltre tutti i file che gli sono necessari per funzionare. Sulla scia del motto “un’applicazione, un file”.
I file AppImage non richiedono però estrazione. L’immagine del programma viene montata nel sistema tramite l’interfaccia FUSE. Questa permette ad utenti senza permessi di root di disporre di una sorta di file system virtuale all’interno del sistema. Questo meccanismo permette la portabilità dell’applicazione che, senza installazione né compilazione di sorgenti, può essere eseguita anche da un supporto esterno USB, senza modificare il sistema operativo sottostante.
AppImage permette di usare il medesimo programma in concomitanza con la versione installata tramite gli archivi ufficiali della propria distribuzione Linux. Si possono persino usare versioni differenti dello stesso programma in formato AppImage.
Scarica, rendi eseguibile, esegui
La semplicità è quindi elemento essenziale alla base di questa formidabile idea dello sviluppatore Simon Peter, noto nel web come probonopd, che ha distribuito sin dall’inizio anche AppImageKit che, con le dovute competenze, consente di creare AppImage.
In pratica, scarichi un file AppImage, lo rendi eseguibile anche senza ricorrere al terminale e lo esegui con un semplice doppio click. È poi sufficiente eliminare il file per rimuoverne ogni traccia dal sistema.
Ricorrendo a tale formato poi, gli utenti possono beneficiare delle ultime funzionalità e miglioramenti del software senza dover attendere il successivo rilascio del sistema operativo. Oppure, ricorrere a versioni precedenti rispetto a quelle disponibili nei repository.
Snap vs Flatpak vs AppImage
AppImage viene talvolta associato agli altri formati di impacchettamento universali per Linux come sono definiti anche Snap di Ubuntu e Flatpak. Ma rispetto ai formati Snap e Flatpak, anch’essi distro-agnostic cioè funzionanti indipendentemente dal tipo e versione di sistema operativo Linux, AppImage prevede diversi vantaggi.
Anzitutto riduce in modo sostanzioso la quantità di dati da scaricare, non si installa e permette di utilizzare anche molteplici versioni del medesimo programma.
Snap e Flatpak prevedono un archivio centralizzato in cui trovare programmi. Alcuni sostengono che la centralizzazione e la presenza di una entità di controllo offra maggiori garanzie rispetto alla libera distribuzione incontrollata di software. Ma si obietta che questa non ha impedito, ad esempio, che più volte, siano stati trovati malware in programmi diffusi in formato Snap nello store di Ubuntu. E che anche i flatpak dell’archivio Flathub non siano tutti verificati.
Altri ritengono che la distribuzione di software libero possa considerarsi davvero tale, se chiunque è in grado di pubblicare progetti senza passare per il tramite di qualcun altro. In tal caso qualcuno obietta che la fiducia cieca negli sviluppatori l’open-source non se la può più permettere. Specie dopo il disastro sfiorato nel 2024 a proposito del raffinato malware nell’utilità di compressione xz.
Snap e Flatpak prevedono quantità di dati e tempi di scaricamento e installazione significativi. Anche se un AppImage integra le librerie da cui dipende, i file sono però molto leggeri. L’editor video KDEnlive 24.08.1 ad esempio richiede lo scaricamento di 1,4 GB di dati e 3 GB di spazio su disco in flatpak. Ma il file AppImage pesa 250 MB. E secondo il team KDE, tale formato è il più completo e l’unico a garantire il funzionamento del programma senza alcun problema, in qualunque sistema operativo.
Dal momento che KDEnlive è il mio editor video da anni, quello con cui ho realizzato ogni singolo video del canale YouTube, posso confermare che sia con versioni installate in differenti release di Linux Mint dai repository ufficiali, sia con quelle flatpak, ho sperimentato spesso blocchi improvvisi del programma o l’impossibilità di usare certi filtri e funzioni. Problemi che non ho mai incontrato con le edizioni in formato AppImage ufficiali di KDE.
Nella mia personale esperienza poi, le AppImage si integrano molto meglio con i temi e la personalizzazione grafica del sistema operativo, qualunque sia l’ambiente desktop.
Dove trovare programmi per Linux in formato AppImage
Ma dove trovare programmi in formato AppImage? Come accennato, il modo più sicuro per procurarsi programmi in formato AppImage è scaricarlo dal sito web ufficiale del programma stesso quando il suo sviluppatore o il team lo preveda. Anche l’ideatore di AppImage ne è convinto e diffida di tentativi di centralizzare la distribuzione di programmi in questo formato.
AppImageHub
Infatti esistono altre strade. Tra cui il sito web Appimagehub.com che va però preso con molte cautele perché chiunque è in grado di pubblicarvi software anche senza esserne l’autore. Con le relative implicazioni su sicurezza e privacy. Inoltre diversi sviluppatori che pubblicano progetti tramite AppImageHub ammettono di non essere gli autori del programma impacchettato, ma incoraggiano ad effettuare donazioni che finiscono per remunerare soggetti diversi da quelli che il programma lo hanno sviluppato.
Appimage.github.io
C’è anche il sito web appimage.github.io che pare proporsi come catalogo ma nasce con lo scopo di verificare il rispetto dei requisiti delle applicazioni in questo formato voluti dal suo ideatore probonopd.
Utile per uno sviluppatore ma molto meno per l’utente finale. Perché se preso come catalogo ha molti limiti perché si limita ad elencare applicazioni in tale formato tra cui anche quelle non più disponibili, senza alcun riguardo a pacchetti datati o non più esistenti, forse allo scopo di fare numero.
Molte pagine del sito non riportano fonti e prevedono descrizioni generiche ripetute ma nessuna specifica informazione sull’applicazione.
AppImage Pool
Poi c’è AppImage Pool, che differisce dai precedenti perché è un’applicazione autonoma, standalone come si dice in gergo, e non un sito web. Consiste in un vero e proprio store in cui trovare tutte riunite le applicazioni in questo formato. AppImage Pool però non è che un indice di contenuti che scarica i file direttamente dalle rispettive pagine su GitHub, ma è basato su AppImageHub di cui può essere quindi considerato un frontend grafico.
Puoi scaricare AppImage Pool in tanti formati dalle pagine ufficiali su GitHub, tra cui .deb, .rpm e ovviamente AppImage. AppImage Pool è ben fatto e prevede una visualizzazione ad elenco e una a griglia, numerose categorie da esplorare ed un motore di ricerca.
Anche in questo caso, come regola generale, mi affiderei ad AppImage Pool a scopo di esplorazione e limiterei lo scaricamento di file solo nel caso in cui l’autore sia indicato, sia noto, corrisponda allo sviluppatore del software stesso e siano pubblicati i sorgenti dell’applicazione. Oppure nel caso si tratti di sviluppatori che conosci e nei quali hai fiducia.
Portable-Linux-Apps
Ad oggi, il modo più sicuro per consultare un catalogo aggiornato di applicazioni AppImage, che riporti autore, fonti e codici sorgenti è il sito web Portable-Linux-Apps nelle pagine di GitHub. Nasce su iniziativa di uno sviluppatore italiano ma è aperto alla collaborazione, come un Wiki, e chiunque può integrarvi informazioni, rispettandone i requisiti documentali.
Come eseguire programmi AppImage in Linux
Una volta scaricato un programma in formato AppImage, è sufficiente renderlo eseguibile per poterlo avviare. Anche senza ricorrere al terminale, distribuzioni GNU/Linux di varia natura permettono di intervenire in forma grafica.
Clicca con il pulsante destro sul file e seleziona Proprietà
dal menu contestuale. Di qui, nella scheda Permessi
, metti il segno di spunta su Consentire l'esecuzione del file come programma
. Da quel momento in poi, basta un doppio click sul file per avviare il programma.
Se invece intendi usare la strada maestra della riga di comando, apri il terminale alla posizione delle tue AppImage e digita uno dei seguenti comandi
chmod +x nomeprogramma.AppImage
per autorizzare il singolo programma, indicando ovviamente il nome effettivo del pacchetto. Oppure usa
chmod +x *.AppImage
per autorizzare tutte le AppImage presenti nella cartella.
Limiti e svantaggi del formato AppImage
Ovviamente, oltre agli innegabili vantaggi, il ricorso al formato AppImage di software per Linux, presenta anche alcuni limiti e svantaggi.
Sicurezza del formato AppImage
Anche se AppImage non richiede privilegi amministrativi, molte operazioni, potenzialmente nocive, possono essere compiute nel sistema senza di essi. È quindi essenziale accertare che provenga da una fonte attendibile prima di eseguirlo. Ecco perché è solitamente suggerito di scaricare un AppImage solo dal sito ufficiale del programma.
Per motivi di privacy e sicurezza del sistema, è quindi consigliato utilizzare questo tipo di applicazioni solo se si è accertato che il file provenga dall’autore del programma e/o che l’affidabilità dello sviluppatore sia certa.
Per incrementare la sicurezza di un software AppImage, esso può comunque essere confinato in una c.d. sandbox e isolato dal resto del sistema, anche tramite utilità quali Firejail e AppArmor.
Un programma AppImage non riceve aggiornamenti
Un altro difetto, superabile, ma insito nella natura dei file portatili in formato AppImage è che essi non prevedono nativamente il controllo e lo scaricamento di aggiornamenti software. È quindi opportuno verificare autonomamente la disponibilità di nuove versioni e scaricarle.
Questo limite è stato in parte superato grazie ad alcune utilità che permettono di integrare al meglio i programmi in formato AppImage nel sistema. Le vediamo più avanti.
Una AppImage non è integrata nel sistema
Visto che non si installa, normalmente non troverai un programma in AppImage nel menu tra gli altri programmi. Anche dopo averne autorizzato l’esecuzione. E non potrai avere un’icona desktop o fissata alla barra desktop o alla dock. Ed esso non sarà disponibile per gli eventuali altri utenti del medesimo computer.
Nelle distribuzioni Linux che lo consentono però, anche senza ricorrere al terminale, puoi creare un c.d. lanciatore desktop, assegnargli un’icona e il programma AppImage si integrerà tra le altre app nel menu. Puoi anche posizionarlo nella categoria di tua preferenza e, con un’ulteriore accortezza, puoi associargli specifici tipi di file quando ci fai doppio click sopra.
In tempi più recenti però, alcuni sviluppatori impacchettano software in AppImage prevedendo procedure di integrazione che hanno proprio lo scopo di posizionare comunque il programma nel menu e fissarne icone di lancio sul desktop o nella barra di avvio veloce.
Come integrare manualmente AppImage in Linux Mint
Ma vediamo quali sono le rapide operazioni che consentono di intervenire manualmente in questo senso. Prendo come riferimento Linux Mint Cinnamon. Ovviamente! Il mio primo consiglio è di riunire le applicazioni di questo tipo in una cartella all’intero della propria home. È prassi, utile anche per l’integrazione con alcune applicazioni di contorno come AppImage Pool, creare una cartella Applications
all’interno della propria home.
Creare il lanciatore desktop
Supponiamo poi di volere Inkscape, l’Adobe Illustrator del mondo libero, senza installarlo dai repository ufficiali, né in Flatpak o Snap che scaricano tantissimi dati all’installazione e ad ogni aggiornamento. Si può scaricare la versione AppImage da 120 MB.
Un click del pulsante destro del mouse sul desktop, apre il menu contestuale. Seleziona Crea un lanciatore qui
e indica nome e, se vuoi, versione del programma e “AppImage”. Poi clicca sull’icona predefinita per cercarne una appropriata, Sfoglia
fino a selezionare il file e conferma.
Viene creata un’icona sul desktop ed una nel menu alla categoria Altro
. Sei già in grado di fissare una icona anche nel pannello.
Se non ti accontenti di tenere il programma alla categoria Altro
, puoi modificare la posizione di un AppImage nel menu. Descrivo come fare anche nel Manuale d’uso di Linux Mint.
Accedi alla configurazione del menu di Cinnamon con il clic destro sul pulsante di avvio, su Configura
e nella scheda Menu
, dal pulsante Apri l'editor del menu
.
Entra nella categoria Altro
, seleziona il programma, Taglia
, seleziona la categoria di destinazione e Incolla
. Voilà!
Associare un tipo di file ad un programma AppImage
Quando un programma preveda particolari specifici tipi di file, penso ad esempio al formato .aup dei progetti Audacity o a quello .kdenlive dell’omonimo editor video, esso non viene assegnato automaticamente alla versione AppImage visto che essa non si installa.
L’integrazione tramite un lanciatore desktop non è sufficiente ma ne è un requisito per ovviare a questo limite. Click del pulsante destro sul tipo di file e poi Apri con
. Sfoglia fino a selezionare l’applicazione AppImage e scegli se aggiungerla semplicemente alle ulteriori opzioni del menu (nel caso essa sia gestita anche da altri programmi) o all’AppImage per impostazione predefinita.
Dopo la conferma, con un doppio click sul tipo di file, questo è associato ed aperto all’interno del programma AppImage.
Rimozione di una AppImage integrata nel sistema
Per rimuovere un software in AppImage dal sistema basta eliminare il file e rimuoverne l’icona dal menu, dal desktop e dal pannello.
In effetti alcuni innocui e minuscoli file di preferenze e configurazione sono solitamente salvati tra quelli nascosti nella Home. Attivandone la visualizzazione con CTRL
+H
puoi ispezionare se vi sia una cartella, verosimilmente proprio nella tua home oppure in .config
o .local
con il nome del programma ed eliminarla.
Utilità per l’integrazione di AppImage nel sistema
Ho accennato al fatto che il progetto AppImage coinvolge a livello di entusiasmo molti smaliziati sviluppatori. Questi si adoperano per realizzare differenti utilità che permettono di gestire ed integrare al meglio nel sistema i software in formato AppImage. E di automatizzare le operazioni appena viste per integrarle manualmente nel sistema o per procurarsi versioni più aggiornate della medesima applicazione.
AppImageUpdate per aggiornare le AppImage
La natura portatile delle AppImage e la mancanza di un apposito gestore di pacchetti, impedisce ai programmi in questo formato di verificarne e riceverne aggiornamenti.
Ma per una parte di esse, per le quali gli sviluppatori prevedano l’integrazione di informazioni di aggiornamento, si può ricorrere ad AppImageUpdate realizzata dalla comunità di utenti sorta attorno al progetto.
Apri l’utilità e seleziona un programma in formato AppImage. AppImageUpdate, se nel file sono disponibili informazioni di aggiornamento, verificherà online se una versione successiva è stata rilasciata. In tal caso confronterà le parti differenti tra la versione locale e la più nuova scaricando solo le parti differenti del file.
Tramite apposite accortezze, è possibile prevedere l’aggiornamento anche a versioni non stabili e in corso di sviluppo, in modo da averne sempre a disposizione l’ultimo stato disponibile. Devo per
AM/AppMan per la massima integrazione
Infine, ma non per importanza, devo segnalare AM/AppMan dell’amico e nostro connazionale Ivan-HC. Ivan si è appassionato al formato AppImage e ha cominciato a realizzarne diversi a partire dai sorgenti “ufficiali”. Tra questi Gimp, Bottles, Steam e VirtualBox.
Non contento, ha realizzato e impacchettato una serie di script e moduli molto utili e versatili per migliorare l’esperienza con il formato. Si può dire che con il suo binomio AM/AppMan abbia colmato una lacuna del formato prevedendo un vero e proprio gestore di pacchetti, ispirato ai repository AUR, che consente di scaricare script di installazione di migliaia di librerie e applicazioni AppImage. Ovviamente tutto open-source e verificabile su GitHub.
AM/AppMan è un’utilità che si usa da riga di comando ma è semplicissima. Scarichi il file AM-INSTALLER, lo rendi eseguibile, apri il terminale nella sua cartella e lanci l’installazione con ./AM-INSTALLER
.
Ti chiederà se vuoi procedere ad una installazione di sistema, per tutti gli utenti o solo per il tuo utente, in modo che non siano mai richiesti privilegi di amministrazione e relativa password. Io ho seguito la seconda definita AppMan.
Sia nelle pagine del progetto su GitHub, sia dopo l’installazione con il comando appman -h
puoi consultare l’esaustiva ed esemplare documentazione del programma.
L’elenco delle applicazioni installabili lo trovi nelle pagine Portable-Linux-Apps già citate o con appman -l
. Se vuoi cercare uno specifico programma usa appman -q
seguito dal nome o parte di esso.
Con appman -i nomeprogramma
, l’applicazione viene come installata nella tua home. Viene creato un lanciatore, icone ed il programma lo trovi già nella categoria menu in cui deve stare. Puoi aggiornare tutte le AppImage installate tramite con appman -u
e rimuoverne ogni traccia con appman -r nomeprogramma
.
AM/AppMan prevede inoltre la possibilità di creare e ripristinare backup per tornare a versioni precedenti dopo un aggiornamento, di isolare le applicazioni in una c.d. sandbox e altre funzioni che mi è impossibile descrivere compiutamente. Se ti interessa il formato AppImage, metti alla prova AppMan.
La mia esperienza con AppImage… e la tua
In altre occasioni ho manifestato il mio apprezzamento per questo formato che preferisco certamente a Snap e anche a Flatpak. Ovviamente il mio consiglio e la mia preferenza è sempre per i programmi presenti nei repository ufficiali. Ma ormai da anni uso l’editor video KDEnlive in AppImage perché non mi costringe a scaricare buona parte dell’ambiente desktop Plasma in Mint né a corredo del Flatpak.
E lo stesso vale per altre applicazioni KDE come Krita e digiKam. Anche altri programmi di utilizzo sporadico o se li voglio in versioni recentissime li preferisco in AppImage. Come Inkscape, OnlyOffice, Audacity, Shotcut, Pencil2D, synfigstudio. Li scarico sempre dal sito ufficiale.
Porto sempre con me un mini drive USB di installazione di Mint con una partizione separata e altri programmi oltre questi in modo da non sbattermi con la persistenza o la personalizzazione delle ISO senza rinunciare a funzionalità da eseguire “al volo” su qualunque PC.
Tu hai già provato qualche software AppImage? Qual’è stata la tua esperienza? Cosa ne pensi? Lascia un commento e parliamone!
Ciao Dario, molto interessante. Vorrei dire la mia limitata esperienza in merito al formato AppImage. Condivido molte tue osservazioni poichè all’inizio, su tue indicazioni, usavo tantissimo il formato AppImage perchè comodo, e anche solo per provare da differenza con le applicazioni originali. Diciamo che mi sono trovato bene per certi aspetti, sulle applicazioni più note nessun problema, se non le dimensioni del file….Ma su alcune applicazioni, meno note, il formato AppImage dava problemi con le librerie, o le dipendenze, che non erano compatibili con la versione di Linux. Per’altro non si integravano nel sistema e non funzionava il tema. Infatti alcune applicazioni vengono fornite direttamente dal sito dello sviluppatore in varie versioni a seconda della versione di Linux. E questo assicura una piena funzionalità dell’applicazione. In quanto a sicurezza non penso che scaricando l’applicazione direttamente dal sito dello sviluppatore quest’ultimo metta a repentaglio la sua applicazione mettendoci adware, o malaware, o mancando di sicurezza. Un’altra cosa fastidiosa, come hai evidenziato, è che l’app non si aggiorna e tutte le volte devi riscaricarla e settarla. Io penso che il formato AppImage sia più consono ad un utilizzatore che mette le app su una chiavetta e rendere comodo il suo utilizzo su diverse postazioni, altrimenti non ha molto senso. In qualsiasi caso molti sviluppatori mettono sul loro sito tutti i formati, compreso AppImage, per rendere facile la scelta. Ho solo una perplessità e una domanda: ma quanto è sicura l’app dello sviluppatore? Se già la sicurezza dai repository è alta, ma non al 100% come abbiamo visto in passato con il collaboratore “infedele”, possiamo fidarci di tutti gli sviluppatori delle proprie applicazioni?
Ciao Giovanni, osservazioni che condivido. Io il dubbio tra controllo di un entità e libera distribuzione me lo pongo anche io nell’articolo, anche a proposito di xz. La fiducia cieca non si può più avere.
Uso come appimage solo Balena Etcher su Devuan (per scrivere le iso su pendrive usb).
Anche se il comando…
dd if=/path/to/filename.iso of=/dev/sdX status=progress conv=fdatasync
…funziona benissimo (“/dev/sdX” è la porta USB, ad esempio “/dev/sdf”).
Gli utenti Ubuntu devono stare in guardia: da Ubuntu 23.04 in poi, gli appimage non funzionano più. Le versioni recenti di Ubuntu utilizzano una versione di FUSE incompatibile con quella richiesta dalle appimages. Ubuntu ora adotta FUSE v3, mentre le AppImages richiedono FUSE v2 per funzionare. Altri sconfortanti dettagli a questo indirizzo:
https : / / www . omgubuntu . co . uk / 2023 / 04 / appimages-libfuse2-ubuntu-23-04
Tutto questo mi induce a guardare con diffidenza a questa “corsa all’ultima versione software disponibile” cavalcando ronzini come AppImage, Flatpak e Snap. Meglio usare i “deb” o gli “rpm”: infinitamente meglio.
Ottimo Geremia! In effetti se c’è un’applicazione grafica per fare qualcosa, significa che si può fare lo stesso anche senza!
Si, il discorso su libfuse2 è uno degli aspetti in cui Probono pare un po’ ostinato. Però grazie ad AM/AppManager ho scoperto che da oltre un anno è previsto un modo per gli sviluppatori di superarne la dipendenza e sfruttare la versione 3. Proprio AM, grazie all’estrazione dell’AppImage permette di sostituire la libreria in quei software che usino ancora la 2. Purtroppo però gli sviluppatori si adeguano lentamente…
“Meglio usare i “deb” o gli “rpm”: infinitamente meglio.”
Giusto. E ricordiamoci anche dell’esistenza di PackageKit (man pkcon) che gestisce sia i ‘deb’ che gli ‘rpm’ (nonché gli aggiornamenti del sistema operativo).
Grazie mille! Confesso con ho mai approfondito pkcon ed è l’occasione giusta.
Come fate a fidarvi delle appimage o snap o flatpak?
Andate sul sito del browser Brave, cliccate sul link per scaricare e accedete ad una pagina dove co sono tutte le istruzioni per scaricare il browser direttamente dal sito e per installarlo sulle varie distro…(a mio avviso la migliore scelta possibile anche meglio delle versioni pre-pacchettozzate deb o rpm). Poi scorrete la stessa pagina verso il basso e leggete le seguenti considerazioni …..
“Brave is available as a Flatpak package from Flathub. While it is maintained by Brave Software, it is not yet working as well as our native packages. We currently recommend that users who are able to use our official package repositories do so instead of using the Flatpak.
Snap
You can find Brave in the Snapcraft Store, but while it is maintained by Brave Software, it is not yet working as well as our native packages. We currently recommend that users who are able to use our official package repositories do so instead of using the Snap.”
Ciao Claudio, ottime osservazioni che condivido, ma non confondiamo AppImage il cui contenuto può essere estratto tramite
--appimage-extract
, con snap e flatpak! Fai benissimo a riportare le indicazioni di Brave. Nelle occasioni in cui l’ho citato ho consigliato infatti di installarlo con i comandi che servono ad inserire il loro archivio tra le fonti fidate… che poi è la prima indicazione che Brave fornisce per l’installazione in Linux.