Cos'è una "AppImage"? Come lo installo?

149

Ho appena letto Meet Etcher, A Stylish Open -Source USB Image Writer Tool . Parla del download di un'Immagine.

  

Sì, Linux; i pacchetti di Linux sono distribuiti come un .appimage per le distribuzioni a 32 e 64 bit e dovrebbero essere eseguiti su tutte le principali distribuzioni Linux senza problemi. Al momento il team non ha in programma di fornire un programma di installazione nativo .deb (o .rpm).

Che cosa sono gli AppImages? In che cosa differiscono dagli snap?

    
posta DK Bose 19.05.2016 - 06:11

5 risposte

198

Informazioni di base

Riguardo all'installazione

Sto citando la pagina del progetto appImage qui:

  

AppImages può essere scaricato ed eseguito senza installazione o necessità   per i diritti di root.

Rendendolo eseguibile

Puoi rendere eseguibile l'immagine app come segue:

chmod a+x exampleName.AppImage

Eseguendolo

Puoi eseguire un'appImmagine come segue:

./exampleName.AppImage

Informazioni aggiuntive

Informazioni sull'appImage

Puoi trovare alcune informazioni generali su appImage qui .

Sto citando la pagina del progetto appImage qui:

  

L'idea chiave del formato AppImage è un'app = un file. Ogni   AppImage contiene un'app e tutti i file necessari per l'esecuzione dell'app. In   altre parole, ogni AppImage non ha dipendenze oltre a ciò che è   incluso nel / i sistema / i operativo / i di base di destinazione.

Wikipedia aggiunge

  

AppImage (e i predecessori klik e portablelinuxapps) no   installare il software nel senso tradizionale (vale a dire, non mettere i file   dappertutto nel sistema).

     

Utilizza un file per applicazione.   Ognuno è autonomo: include tutte le librerie dell'applicazione   dipende e non fa parte del sistema di base. A questo proposito,   è simile alla "virtualizzazione delle applicazioni". Si può usare un'Immagine   file anche se non sono un superutente, o stanno usando un live CD.   I file di AppImage sono spesso più semplici della compilazione e dell'installazione di   applicazione, in quanto nessuna installazione è stata effettivamente eseguita. Il file AppImage   è un'immagine compressa che è temporaneamente montata per consentire l'accesso a   il programma, ma non dover estrarre il programma o modificare il   sistema sottostante.

Il README.md del AppImageKit-project offre molte altre informazioni come Use cases , lo spazio per i problemi e obiettivi .

Use Case

  • Come utente, voglio andare a una pagina di download upstream, scaricare un'applicazione dall'autore originale ed eseguirla sul mio sistema desktop Linux proprio come farei con un'applicazione Windows o Mac.

  • Come tester, voglio essere in grado di ottenere la versione più recente di un'applicazione da un server di generazione continua e testarla sul mio sistema, senza dover compilare e senza dovermi preoccupare che io possa rovinare il mio sistema.

  • Come autore di applicazioni o ISV, voglio fornire pacchetti per sistemi desktop Linux proprio come faccio per Windows e OS X, senza la necessità di metterlo 'in' una distribuzione e senza dover costruire per gazillions di diverse distribuzioni.

Obiettivi

  1. Sii semplice.

      

    AppImage è pensato per essere un formato molto semplice e facile   capire, creare e gestire.

  2. Mantenere la compatibilità binaria.

      

    AppImage è un formato per la distribuzione del software binario. Software   confezionato come AppImage è concepito per essere compatibile come binario   possibile con il maggior numero di sistemi possibile. Il bisogno di   (ri) la compilazione del software dovrebbe essere notevolmente ridotta.

  3. Sii distributivo-agostico.

      

    Un'Immagine deve essere eseguita su tutti i sistemi operativi di base (distribuzioni)   che è stato creato per (e versioni successive). Ad esempio, potresti   target Ubuntu 9.10, openSUSE 11.2 e Fedora 13 (e versioni successive)   allo stesso tempo, senza dover creare e mantenere separati   pacchetti per ogni sistema di destinazione.

  4. Rimuovi la necessità di installazione.

      

    Gli AppImages contengono l'app in un formato che consente l'esecuzione diretta   dall'archivio, senza dover essere prima installato. Questo è   paragonabile a un Live CD. Prima dei Live CD, dovevano essere i sistemi operativi   installato prima di poter essere utilizzato.

  5. Tieni le app sempre compresse.

      

    Poiché l'applicazione rimane sempre imballata, non lo è mai   non compresso sul disco rigido. Il computer decomprime il   applicazione al volo durante l'accesso. Dal momento che la decompressione è   più veloce della lettura dal disco rigido sulla maggior parte dei sistemi, questo ha una velocità   vantaggio oltre al risparmio di spazio. Inoltre, il tempo necessario per   l'installazione è completamente rimossa.

  6. Consenti di mettere app ovunque.

      

    Gli AppImages sono "rilocabili", consentendo così all'utente di memorizzare e   eseguirli da qualsiasi posizione (inclusi CD-ROM, DVD, rimovibili)   dischi, chiavette USB).

  7. Rendi le applicazioni di sola lettura.

      

    Poiché AppImages è di sola lettura in base alla progettazione, l'utente può essere ragionevolmente   sicuro che un'app non si modifichi durante l'operazione.

  8. Non richiede la ricompilazione.

      

    AppImages deve essere possibile creare da binari già esistenti,   senza bisogno di ricompilazione. Ciò accelera notevolmente il   Processo di creazione di AppImage, dal momento che nessun compilatore deve essere coinvolto. Questo   consente inoltre a terze parti di pacchettizzare applicazioni a sorgente chiusa come   AppImages. (Tuttavia, può essere vantaggioso per l'upstream   sviluppatori di applicazioni per creare partendo appositamente per il   scopo di generare un'Immagine.)

  9. Mantieni intatto il sistema operativo di base.

      

    Dal momento che AppImages è progettato per funzionare su sistemi semplici che non lo sono   appositamente preparato da un amministratore, AppImages potrebbe non richiedere   qualsiasi preparazione insolita del sistema operativo di base. Quindi, loro   non può fare affidamento su speciali patch del kernel, moduli del kernel o altro   di applicazioni che non vengono fornite con le distribuzioni di destinazione   di default.

  10. Non richiedere root.

      

    Dato che gli AppImages devono essere eseguiti dagli utenti finali, non dovrebbero   reqiure un account amministrativo (root) da installare o utilizzare. Essi   tuttavia, può essere installato da un amministratore (ad esempio, in multiutente   scenari) se lo si desidera.

risposta data dufte 19.05.2016 - 08:07
19

L'idea di base potrebbe sembrare simile tra i due sistemi, ma ci sono alcune differenze di design tra snap e Appimages.

Alcuni "grandi" che mi vengono in mente sono:

  1. Sicurezza , in termini di confinamento . I pacchetti Snap vengono eseguiti in una sandbox e non gli è consentito sfuggire e raggiungere altre parti del sistema che dovrebbero non toccare. Questo è un livello di sicurezza più forte che viene eseguito parallelamente al sistema di autorizzazioni. Ovviamente è un po 'frustrante affrontarlo all'inizio (e anche successivamente), ma se ci pensi in termini di amministrazione del sistema, questa è la cosa che un amministratore vuole per i propri utenti.

  2. Sicurezza. Installare un software prelevato da rete è sicuro come andare in giro a leccare pali per le strade. A volte non succede niente, a volte si hanno dei problemi di salute molto grandi. I pacchetti Snap hanno i loro repository appropriati, che sono controllati da Canonical, come i soliti repository standard di Ubuntu. Puoi andare avanti e installare .deb file da intorno, ma quella sarà la tua scelta e non un problema di progettazione.

  3. Installazione. AppImages è pensato per essere l'equivalente dei "file eseguibili di Windows portatili". Tutte le librerie sono autonome e ogni utente può semplicemente scaricare ed eseguire uno di questi. D'altra parte, i pacchetti snap sono pacchetti corretti e devono essere installati (come root , o con sudo ) tramite l'apposito gestore pacchetti ( snap install tic-tac-toe genera un errore: ha bisogno di sudo ! )

  4. La rimozione. Per rimuovere un pacchetto snap, è necessario utilizzare il gestore pacchetti snap remove ... con le giuste autorizzazioni per farlo. Le immagini, d'altro canto, sono solo "lì". Quindi qualsiasi utente non vuole che Appimage? Rimuove il file e non c'è più.

Mentre suggerisco caldamente di essere cauto quando uso Appimages, personalmente ne uso personalmente alcuni.

Li trovo particolarmente utili sul mio sistema di lavoro, dove non ho accesso a root (solo l'amministratore ha quello) ma ho bisogno dell'ultima versione di un particolare software che, fortunatamente, lo sviluppatore ha fornito in forma Appimage .

Ho un po 'paura che alcuni codici maligni siano effettivamente contenuti in essi, quindi ho controllato il più possibile l'identità dell'editore. Non sono sicuro al 100% che questo software sia benigno, ma ho fatto tutto il possibile.

    
risposta data dadexix86 19.05.2016 - 09:59
14

Mentre lo snap si concentra solo su Ubuntu, AppImage è cross-distribution e funziona anche su Fedora, debian, openSUSE, CentOS ecc.

AppImage non ha bisogno di runtime o supporto infrastrutturale dalla distribuzione Linux e quindi viene eseguito ovunque. Consente agli autori di applicazioni di inviare il proprio software direttamente agli utenti Linux come il do per Windows e OS X; senza Canonical o chiunque altro "tra" l'autore del software e l'utente finale.

Se un'applicazione viene fornita in formato AppImage, un utente può andare sul sito dell'autore originale per scaricarlo, ad esempio, MuseScore dal link . Rendi l'eseguibile di AppImage (utilizzando il gestore file o chmod a+x ./yourAppImage ), quindi puoi eseguire l'applicazione semplicemente facendo doppio clic.

    
risposta data probono 19.05.2016 - 08:24
10

Prima di poter eseguire un'Immagine, è necessario renderla eseguibile. Questa è una funzionalità di sicurezza di Linux. Esistono due modi principali per rendere un eseguibile di AppImage:

1. Utilizzo della GUI

o

2. Sulla riga di comando

chmod a+x Some.Appimage

Ora fai doppio clic sul file per eseguirlo OPPURE Fai clic con il pulsante destro del mouse & gt; Esegui

    
risposta data probono 10.10.2016 - 04:01
3

AppImages richiede l'esecuzione di FUSE. Il filesystem in Userspace (FUSE) è un sistema che consente agli utenti non root di montare i filesystem.

Installa FUSE

Molte distribuzioni hanno una configurazione FUSE funzionante pronta all'uso. Tuttavia, se non funziona per te, potrebbe essere necessario installare e configurare FUSE manualmente.

Ad esempio, su Ubuntu:

sudo apt-get install fuse
sudo modprobe fuse
sudo usermod -a -G fuse $USER

Ad esempio, su openSUSE:

sudo zypper install fuse

Fallback

Se non vuoi installare FUSE, puoi montare o estrarre l'immagine di app.

Per montare l'AppImage ed eseguire l'applicazione, è sufficiente eseguire

sudo mount -o loop Some.AppImage /mnt
/mnt/AppRun

Se ciò non funziona, potresti avere un tipo 2 sperimentale AppImage . Questi richiedono di passare -o offset=... al comando mount . Esegui l'immagine di app con --appimage-offset per trovare il numero corretto per l'offset.

    
risposta data insign 13.10.2016 - 17:06

Leggi altre domande sui tag