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
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!
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!