[guida] Appimage

Pubblicità

davethecipo

Utente Èlite
Messaggi
3,331
Reazioni
1,163
Punteggio
138
Ciao a tutti, in questa breve guida vorrei parlarvi di AppImage.

AppImage è un tipo di file binario per Linux che contiene tutto il necessario per avviarsi, ovvero librerie ma anche icone e altri file.

Dato che gli esempi valgono più di mille parole, proviamo ad eseguire Subsurface, un programma di Linus Torvalds

Codice:
wget https://subsurface-divelog.org/downloads/Subsurface-4.5.6-x86_64.AppImage
chmod u+x Subsurface-4.5.6-x86_64.AppImage
./Subsurface-4.5.6-x86_64.AppImage

Et voilà, Subsurface è avviato senza alcuna installazione, dopo aver cambiato i permessi.

Vantaggi

Questo formato è conveniente agli sviluppatori, soprattutto quelli di progetti piccoli, perché, essendo il file compatibile con tutte le distro, richiede molto meno lavoro rispetto alla creazione di pacchetti o repository per ogni distro che si vuole supportare. Inoltre, integrando tutte le librerie necessarie, lo sviluppatore può usare versioni molto recenti delle librerie che gli servono (tipicamente perché è stata introdotta qualche funzionalità nuova) e l'applicazione funzionerà anche su distribuzioni con versioni vecchie delle librerie. Lo sviluppatore può fornire agli utenti sempre la versione più aggiornata del software, anche con un ciclo di rilascio veloce, indipendentemente dal ciclo della distro.

Per l'utente è conveniente soprattutto quando si vuole provare una versione alpha/beta in quanto non bisogna né compilare sorgenti né aggiungere repo. Anche allo sviluppatore conviene in quanto i bug report si riferiscono tutti a copie dello stesso file compilato con un set preciso di opzioni per il compilatore.

Svantaggi

Lo svantaggio più evidente è la dimensione del file che per forza di cose diventa cicciottello. Personalmente non mi pare un grande problema sull'hardware recente, a patto che AppImage venga usato per pochi software che avrebbero poco senso sui repository.

AppImage non si sostituisce ad un package manager, per cui gli aggiornamenti sarebbero a carico dell'utente o dello sviluppatore. A tal proposito, esiste AppImageUpdate. Ulteriori informazioni sulla pagina github https://github.com/probonopd/AppImageKit/tree/master/AppImageUpdate.AppDir.

Alcuni sostengono che un problema sia la sicurezza: se c'è un bug in una delle librerie usate dall'applicazione, con un programma normale l'aggiornamento della libreria tramite package manager garantisce che tutti i programmi facenti uso della libreria vengano messi in sicurezza. Torvalds ribatte che sia un finto problema, soprattutto per applicazioni centrate sull'utente e poco comuni, come appunto Subsurface. Altri aggiungono che mantenere le dipendenze aggiornate dal lato sicurezza faccia già parte dei compiti del programmatore, soprattutto per le applicazioni multipiattaforma. Link alla discussione su G+: https://plus.google.com/+LinusTorvalds/posts/WyrATKUnmrS

La mia opinione personale è che Appimage sia perfetto per distribuire applicazioni con un target di nicchia per le quali sarebbe dispendioso mantenere più pacchetti per le varie distro.


Eventuali problemi

Lo sviluppatore deve assicurarsi di usare una versione di glibc sufficientemente vecchia per permettere al programma di funzionare sulla maggior parte delle distribuzioni. Inoltre deve assicurarsi di includere davvero tutto il necessario, ad esempio a me in data odierna Openshot va in segfault.

Elenco di applicazioni distribuite tramite AppImage: https://github.com/probonopd/AppImageKit/wiki/AppImages

Esperienza personale

Dato che a me piace disegnare, su Ubuntu ho avuto modo di provare Krita 3.0 per sfruttare delle funzionalità nuove non presenti su krita 2.9 disponibile sui repo. Veramente comodo!
 
Salve,
Una piccola premessa su cos'è, a cosa serve e cosa ci puoi fare?
Tu lo sai, ma io no. :asd:
Altrimenti costringi chi legge a cercarselo in rete. :P

:thanks:
 
Ultima modifica:
snap di Ubuntu secondo me è migliore. Infatti da Ubuntu 16.04, krita è disponibile con pacchetto snap, ti basta installarlo:
Codice:
sudo snap install krita

E poi garantisce piu sicurezza, visto che viene isolato, tramite Seccomp e Apparmor. In questo caso, ci sono delle librerie che puoi condividere con Snappy.
 
Salve,
Una piccola premessa su cos'è, a cosa serve e cosa ci puoi fare?
Tu lo sai, ma io no. :asd:
Altrimenti costringi chi legge a cercarselo in rete. :P

:thanks:

È un formato particolare di file binario che non necessita di installazione. Dunque serve agli sviluppatori per rilasciare i propri programmi bypassando i repository delle varie distro.

@lele.deb: ah di sicuro funziona su ubuntu, su arch mica tanto :asd:

Codice:
[davide@fisso ~]$ snap run krita 
krita.lib.pigment unknown: Legacy integer arithmetics implementation 
No protocol specified 
default unknown: QXcbConnection: Could not connect to display :0 
Annullato
 
Ultima modifica:
È un formato particolare di file binario che non necessita di installazione. Dunque serve agli sviluppatori per rilasciare i propri programmi bypassando i repository delle varie distro.

@lele.deb: ah di sicuro funziona su ubuntu, su arch mica tanto :asd:

Codice:
[davide@fisso ~]$ snap run krita
krita.lib.pigment unknown: Legacy integer arithmetics implementation
No protocol specified
default unknown: QXcbConnection: Could not connect to display :0
Annullato
Dove lo hai preso run?
Per installare:
Codice:
sudo snap install krita
Per update singola APP:
Codice:
sudo snap refresh krita
Per avviare l'APP installata, la trovi nel menu
 
Pubblicità
Pubblicità
Indietro
Top