[guida] Appimage

davethecipo

Utente Èlite
3,331
1,163
CPU
i5 4660
Scheda Madre
H97 PC Mate
HDD
qualcuno
RAM
8 GB
GPU
R9 280
Monitor
Samsung SyncMaster 940BW 19'
PSU
Enermax Liberty 620W
Case
Enermax Pandora Midi Tower Black
OS
Arch Linux con KDE...Windows 10
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!
 

« MoMy »

Utente Èlite
1,529
771
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:

EmanueleC

Utente Èlite
5,636
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
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.
 

davethecipo

Utente Èlite
3,331
1,163
CPU
i5 4660
Scheda Madre
H97 PC Mate
HDD
qualcuno
RAM
8 GB
GPU
R9 280
Monitor
Samsung SyncMaster 940BW 19'
PSU
Enermax Liberty 620W
Case
Enermax Pandora Midi Tower Black
OS
Arch Linux con KDE...Windows 10
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:

alex87alex

Utente Èlite
1,554
300
CPU
i7 4770k + dissi BeQuiet! Shadow Rock 2
Scheda Madre
Asrock z87 Extreme6
HDD
Samsung 850 250gb
RAM
2x4gb Kingston HyperX Genesis
GPU
Zotac Gtx 570 1280mb
Audio
Xonar U3 + Superlux
Monitor
Aoc i2367fm
PSU
Cooler Master V650
Case
Corsair 200R
OS
Windows 7 Sp1 x64
Non lo conosco minimamente ma sembra una fig*ta :asd:
 

EmanueleC

Utente Èlite
5,636
1,841
CPU
Ryzen 5 2600x
Dissipatore
stock
Scheda Madre
ROG STRIX B450-F GAMING
HDD
OS: WD BLue SN570 500GB, Dati: 1TB Toshiba p300, Game: 2TB Toshiba P300
RAM
Corsair DDR4 3000 Mhz 2x8 GB
GPU
AMD Radeon RX 6600
PSU
Seasonic Focus Gold 450W
Case
BitFenix Neos
OS
Fedora Linux
È 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
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili