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


ho appena letto Incontra Etcher, un elegante strumento di scrittura di immagini USB open source. 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).

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


153
2018-05-19 04:11


origine


Penso che la appimage il tag potrebbe diventare utile, quindi l'ho appena creato. Nel caso in cui non avremo bisogno o voglia di mantenerlo, ci sarebbe sempre la possibilità di bruciarlo nuovamente. - Byte Commander


risposte:


Informazioni di base

Per quanto riguarda l'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 l'eseguibile appImage come segue:

chmod a+x exampleName.AppImage

Eseguendolo

Puoi eseguire un'appImmagine come segue:

./exampleName.AppImage

Informazioni aggiuntive

Informazioni su 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 di riferimento / i di riferimento.

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).

Usa 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 informazioni aggiuntive come Casi d'uso, lo spazio del problema e obiettivi.

Casi d'uso

  • 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 potrei rovinare il mio sistema.

  • Come autore di un'applicazione 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 da usare   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   La (ri) compilazione del software dovrebbe essere notevolmente ridotta.

  3. Essere distribuzione-agostica.

    Un'Immagine deve essere eseguita su tutti i sistemi operativi di base (distribuzioni)   che è stato creato per (e versioni successive). Ad esempio, potresti   ud B B Bud B B Bud B B Bud B Bud B Bud B Bud B Bud B B B B B Bud B B Bud B B Bud B B Bud B B Bud B B Bud Bud B B Bud Bud B B Bud B B Bud Bud B B B tutte Bud Bud Bud Bud Bud Bud Bud Bud B B Bud B Bud Bud B Bud B B   allo stesso tempo, senza dover creare e mantenere separati   pacchetti per ogni sistema di destinazione.

  4. Rimuovi la necessità di installazione.

    AppImages contiene 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.

    AppImages sono "rilocabili", consentendo 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 richiedere 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.

    Poiché 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   predefinito.

  10. Non richiedere root.

    Poiché AppImages è destinato ad essere eseguito dagli utenti finali, non dovrebbe   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.


204
2018-05-19 06:07



Forse la base reale Q / A dovrebbe essere al di sopra della spiegazione? - UniversallyUniqueID
In che modo un appimage conserva le impostazioni tra i lanci? - Dan Dascalescu
Potresti elaborare un po 'sulla funzione di "sola lettura"? Posso salvare le modifiche all'interno di AppImage? Oppure li perde da vicino come LiveCD? - vstepaniuk
@DanDascalescu: La tua domanda merita di essere elevata a un'intera domanda su AskUbuntu, non solo un commento. Lo chiedi? - Kurt Pfeifle
@KurtPfeifle: dato che non volevi andare avanti e chiedere a te stesso ... :) - Dan Dascalescu


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 scappare da esso 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 più avanti), 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 di tutto, ma quella sarà la tua scelta, e non un problema di design.

  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, snap i pacchetti sono pacchetti appropriati e devono essere installati (come rooto con sudo) tramite l'apposito gestore di pacchetti (snap install tic-tac-toe genera un errore: ha bisogno sudo!)

  4. 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 root accesso (solo l'amministratore ha quello) ma ho bisogno dell'ultima versione di un particolare software che, fortunatamente, lo sviluppatore ha fornito in forma appimativa.

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.


20
2018-05-19 07:59



Fondamentalmente, tutti stanno cercando di implementare il pacchetto di app OSX su Linux, ma non ci arriva proprio niente. - OrangeDog
Non ho idea di come funzioni :) Per certo Snap e Appimages non funzionano bene con software con molte dipendenze condivise tra molti altri software. Stanno perfettamente bene con software già autosufficienti o con poche dipendenze, ma il rischio è quello di avere molte copie della stessa libreria che fanno lo stesso compito, come in Windows. Questo dovrebbe essere risolto nei pacchetti snap (un software che dipende dalla libreria snap installa quella libreria con quella versione, quindi un altro software che ha bisogno della stessa versione della libreria potrebbe usarlo, come con il solito sistema). - dadexix86
Le app OSX (e iOS) funzionano come AppImage (basta scaricare un singolo file ed eseguirlo) ma con la sicurezza sandboxed di snap. - OrangeDog
OSX sta cercando di sbarazzarsi di questi e consente solo installazioni dal loro negozio. - LtWorf
AppImage dovrebbe infatti contenere l'opzione per Sand Boxing. Spero che lo vedremo in futuro. - Royi


Mentre 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 di infrastruttura 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 al sito Web dell'autore originale per scaricarlo, ad es. MuseScore da https://musescore.org/en/download. Rendi eseguibile l'applicazione AppImage (utilizzando il file manager o chmod a+x ./yourAppImage), quindi è possibile eseguire l'applicazione semplicemente facendo doppio clic.


15
2018-05-19 06:24



Quindi, se voglio installare Leafpad, faccio clic su "Impostazioni"? Cosa succederà allora? E come posso disinstallare un'Immagine? Sto guardando bintray.com/probono/AppImages ma non ha trovato la risposta. Se non ti dispiace, puoi modificare la tua risposta per includere le informazioni e qualsiasi altra cosa pensi che gli utenti potrebbero voler sapere. - DK Bose
Non sono sicuro che sia una soluzione anche per te - ma il leafpad è disponibile nelle fonti 16.04 immediatamente (versione: 0.8.18.1). La versione del leafpad offerta da bintray è 'solo' 0.8.17 - quindi ancora più vecchia. - dufte
È vero, ma per qualcuno che vuole solo testare le acque, è, come dice il sito, un tipo di "Hello, World". - DK Bose
Eccellente. Dopodiché puoi semplicemente fare doppio clic. Questo è quello che mi serviva! - Dawoodjee


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

How to make an AppImage executable

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


11
2017-10-10 02:01





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

Ricaderci

Se non si desidera installare FUSE, è possibile montare o estrarre l'Immagine.

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 esperimento tipo 2 AppImage. Questi richiedono di passare -o offset=... al mount comando. Esegui l'Immagine con --appimage-offset per trovare il numero corretto per l'offset.


3
2017-10-13 15:06