AppImage
# AppImage

AppImage è un formato per la distribuzione di software portatile su Linux senza la necessità di autorizzazioni di superutente per installare l'applicazione. Ha come scopo la distribuzione di software binario indipendente dalla distribuzione Linux per gli sviluppatori di applicazioni, chiamato anche packaging lato upstream. Rilasciato la prima volta nel 2004 con il nome klik, è stato continuamente sviluppato, poi rinominato nel 2011 in PortableLinuxApps e successivamente nel 2013 in AppImage.

## Descrizione

### Obiettivi

AppImage mira a essere un sistema di distribuzione di applicazioni per Linux con i seguenti obiettivi: semplicità, compatibilità binaria, agnosticismo della distribuzione, nessuna installazione, nessun permesso di root, essere portabile e mantenere intatto il sistema operativo sottostante.

### Caratteristiche

AppImage non installa l'applicazione nel senso tradizionale di Linux. Invece di inserire i vari file dell'applicazione nelle posizioni appropriate della distribuzione nel file system, il file AppImage è solo l'immagine compressa dell'applicazione. Quando viene eseguito, il file viene montato con FUSE. Questo comportamento è coerente con i predecessori di AppImage, klik e PortableLinuxApps.

Utilizza un solo file per applicazione. Ogni file è autonomo: include tutte le librerie da cui dipende l'applicazione che non fanno già parte del sistema di base di destinazione. Un'AppImage della versione 1.0 è un file Rock Ridge ISO 9660 (che può essere opzionalmente compresso zisofs) contenente una AppDir minima e un runtime ridotto. (La versione 2 può utilizzare altri formati di immagine del file system come SquashFS). Un'applicazione AppImage può essere aggiunta a un CD live aggiungendo un solo file al CD live.

I file AppImage sono più semplici dell'installazione di un'applicazione. Non sono necessari strumenti di estrazione, né è necessario modificare il sistema operativo o l'ambiente utente. Gli utenti regolari delle comuni distribuzioni Linux possono scaricarlo, renderlo eseguibile ed eseguirlo.

AppImage consente la generazione di firma digitale incorporata, che deve essere verificata con un'utilità esterna. Il formato non offre una forma di autocontrollo con verifica dell'autenticità del pacchetto o confinamento del runtime tramite sandboxing.

## Storia

### klik

Il predecessore di AppImage, klik, è stato progettato nel 2004 da Simon Peter. Il software lato client è con licenza GPL. klik era integrato con i browser web sul computer dell'utente. L'utente poteva scaricare e installare il software digitando un URL che inizia con klik://. Questo ha scaricava un file di "ricetta" klik, che è stato utilizzato per generare un file .cmg . Per gli "ingredienti" principali, di solito i pacchetti .deb precompilati dai repository Debian Stable venivano inseriti nel processo di generazione .cmg della ricetta. In questo modo, una "ricetta" potrebbe essere utilizzata per fornire pacchetti a un'ampia varietà di piattaforme. Con klik, è possibile eseguire solo otto programmi contemporaneamente a causa della limitazione del montaggio di immagini compresse con il kernel Linux, a meno che non sia stato utilizzato FUSE. Il file veniva rimontato ogni volta che il programma veniva eseguito, il che significa che l'utente poteva rimuovere il programma semplicemente eliminando il file .cmg. Una versione successiva, klik2, era in fase di sviluppo; e incorporerebbe nativamente il modulo del kernel FUSE, ma non ha mai superato la fase beta. Intorno al 2011, il progetto klik è andato inattivo e la homepage è rimasta offline per qualche tempo.

### PortableLinuxApps

Simon Peter ha avviato un progetto successore chiamato PortableLinuxApps con obiettivi simili in quel periodo. La tecnologia è stata adattata ad esempio dal repository "portablelinuxgames.org", fornendo centinaia di videogiochi per lo più open source.

### AppImage

Intorno al 2013, il software è stato nuovamente rinominato da PortableLinuxApps ad AppImage e fu utilizzata la licenza MIT. AppImage è il formato e AppImageKit è un'implementazione open source vera e propria. Lo sviluppo avviene in un repository GitHub.

