Qu'est-ce qu'un "AppImage"? Comment puis-je l'installer?

232

Je viens de lire Meet Etcher, un élégant outil de gravure d’image USB à code source ouvert . Il parle de télécharger une AppImage.

Oui, Linux; les packages Linux sont distribués sous la forme d'un fichier .appimage pour les distributions 32 bits et 64 bits, et doivent s'exécuter sur toutes les principales distributions Linux, sans aucun problème. L'équipe ne prévoit actuellement pas de fournir un programme d'installation natif .deb (ou .rpm).

Que sont les AppImages? Comment diffèrent-ils des clichés?

DK Bose
la source
10
Je pense que le appimagetag pourrait devenir utile, alors je viens de le créer. Dans le cas où nous n'aurions pas besoin ou ne voudrions pas le conserver, il y aurait toujours la possibilité de le brûler à nouveau de toute façon.
Byte Commander

Réponses:

283

Informations de base

En ce qui concerne l'installation

Je cite la page du projet appImage ici:

AppImages peut être téléchargé et exécuté sans installation ni besoin de droits root.

Le rendant exécutable

Vous pouvez rendre l'appImage exécutable comme suit:

chmod a+x exampleName.AppImage

L'exécuter

Vous pouvez exécuter une application image comme suit:

./exampleName.AppImage

Information additionnelle

À propos de appImage

Vous trouverez des informations générales sur appImage ici .

Je cite la page du projet appImage ici:

L'idée clé du format AppImage est une application = un fichier. Chaque AppImage contient une application et tous les fichiers que l'application doit exécuter. En d'autres termes, chaque AppImage n'a pas de dépendances autres que celles incluses dans le ou les systèmes d'exploitation de base ciblés.

Wikipedia ajoute

AppImage (et les prédécesseurs klik et portablelinuxapps) n’installe pas de logiciel au sens traditionnel du terme (c’est-à-dire qu’il ne place pas les fichiers partout dans le système).

Il utilise un fichier par application. Chacune est autonome: elle inclut toutes les bibliothèques dont dépend l'application et qui ne font pas partie du système de base. À cet égard, cela s'apparente à la "virtualisation d'application". On peut utiliser un fichier AppImage même s’ils ne sont pas des super-utilisateurs ou qu’ils utilisent un CD live. Les fichiers AppImage sont souvent plus simples que la compilation et l’installation d’une application, puisqu’aucune installation n’a eu lieu. Le fichier AppImage est une image compressée montée temporairement pour permettre l'accès au programme, sans avoir à extraire le programme ni à modifier le système sous-jacent.

Le README.mddu AppImageKit-projet offre beaucoup d' informations supplémentaires comme des cas d'utilisation , l'espace des problèmes et des objectifs .

Cas d'utilisation

  • En tant qu'utilisateur, je souhaite accéder à une page de téléchargement en amont, télécharger une application de l'auteur d'origine et l'exécuter sur mon système de bureau Linux, exactement comme je le ferais avec une application Windows ou Mac.

  • En tant que testeur, je veux pouvoir obtenir la dernière version d'une application à partir d'un serveur de build continu et la tester sur mon système, sans avoir besoin de compiler et sans craindre de gâcher mon système.

  • En tant qu'auteur d'application ou ISV, je souhaite proposer des packages pour les systèmes de bureau Linux, comme je le fais pour Windows et OS X, sans qu'il soit nécessaire de l'introduire "dans" une distribution et sans avoir à générer des millions de distributions différentes.

Objectifs

  1. Soit simple.

    AppImage se veut un format très simple, facile à comprendre, à créer et à gérer.

  2. Maintenir la compatibilité binaire.

    AppImage est un format pour la distribution de logiciels binaires. Les logiciels fournis en tant que AppImage sont conçus pour être aussi compatibles binaires que possible avec autant de systèmes que possible. La nécessité de (re) compiler des logiciels devrait être grandement réduite.

  3. Être distribution-agnostique.

    Une AppImage doit s'exécuter sur tous les systèmes d'exploitation de base (distributions) pour lesquels elle a été créée (et les versions ultérieures). Par exemple, vous pouvez cibler Ubuntu 9.10, openSUSE 11.2 et Fedora 13 (et versions ultérieures) en même temps, sans avoir à créer et à gérer des packages distincts pour chaque système cible.

  4. Supprimez le besoin d'installation.

    AppImages contient l'application dans un format lui permettant de s'exécuter directement à partir de l'archive, sans avoir à être installée au préalable. Ceci est comparable à un Live CD. Avant les Live CD, les systèmes d’exploitation devaient être installés avant de pouvoir être utilisés.

  5. Gardez les applications compressées tout le temps.

    Comme l’application reste tout le temps empaquetée, elle n’est jamais décompressée sur le disque dur. L'ordinateur décompresse l'application à la volée tout en y accédant. Étant donné que la décompression est plus rapide que la lecture à partir du disque dur sur la plupart des systèmes, cela présente un avantage en termes de rapidité en plus d'économiser de l'espace. En outre, le temps nécessaire à l'installation est entièrement supprimé.

  6. Permet de mettre des applications n'importe où.

    Les AppImages sont "relogeables", permettant ainsi à l'utilisateur de les stocker et de les exécuter à partir de n'importe quel emplacement (y compris les CD-ROM, DVD, disques amovibles, clés USB).

  7. Rendre les applications en lecture seule.

    Étant donné que AppImages est en lecture seule de par sa conception, l'utilisateur peut être raisonnablement sûr qu'une application ne se modifie pas d'elle-même pendant son fonctionnement.

  8. Ne nécessite pas de recompilation.

    AppImages doit pouvoir être créé à partir de fichiers binaires existants, sans recompilation. Cela accélère considérablement le processus de création d'AppImage, car aucun compilateur ne doit être impliqué. Cela permet également à des tiers de conditionner des applications à source fermée en tant qu'AppImages. (Néanmoins, il peut être avantageux pour les développeurs d’applications en amont de compiler à partir de la source spécifiquement dans le but de générer une AppImage.)

  9. Gardez le système d'exploitation de base intact.

    Comme AppImages est conçu pour fonctionner sur des systèmes standard qui n'ont pas été spécialement préparés par un administrateur, AppImages peut ne nécessiter aucune préparation inhabituelle du système d'exploitation de base. Par conséquent, ils ne peuvent pas compter sur des correctifs de noyau spéciaux, des modules de noyau ou des applications qui ne sont pas fournies avec les distributions ciblées par défaut.

  10. Ne nécessite pas de racine.

    Etant donné que les applications AppImages sont destinées à être exécutées par les utilisateurs finaux, ils ne doivent pas requérir l’installation ou l’utilisation d’un compte administrateur (root). Ils peuvent toutefois être installés par un administrateur (par exemple, dans des scénarios multi-utilisateurs) si vous le souhaitez.

dufte
la source
4
Comment une image persiste-t-elle dans les paramètres entre les lancements?
Dan Dascalescu
1
Pourriez-vous élaborer un peu sur la fonctionnalité "lecture seule"? Puis-je enregistrer les modifications dans AppImage? Ou il les perd proches comme LiveCD?
vstepaniuk
2
@DanDascalescu: Votre question mérite d'être élevée à une question complète sur AskUbuntu, pas seulement un commentaire. Voulez-vous le demander?
Kurt Pfeifle le
@vstepaniuk: Votre question est similaire à celle de Dan. L'un de vous devrait poser la question "au complet", pas seulement dans un commentaire ...
Kurt Pfeifle
1
@KurtPfeifle: puisque vous ne vouliez pas simplement aller de l'avant et le demander vous-même ... :)
Dan Dascalescu
22

L'idée de base peut sembler similaire entre les deux systèmes, mais il existe des différences de conception entre les instantanés et Appimages.

Quelques "gros" qui me viennent à l'esprit sont:

  1. Sécurité , en termes de confinement . Les paquets instantanés s'exécutent dans un bac à sable et ils ne sont pas autorisés à en sortir et à atteindre d'autres parties du système qu'ils ne doivent pas toucher. Il s'agit d'une couche de sécurité renforcée s'exécutant parallèlement au système d'autorisations. Évidemment, il est un peu frustrant de gérer cela au début (et aussi plus tard), mais si vous y réfléchissez en termes d’administration système, c’est ce qu’un administrateur souhaite pour ses utilisateurs.

  2. Sécurité. L’installation de logiciels provenant du réseau est aussi sûre que de lécher des poteaux dans les rues. Parfois, rien ne se passe, parfois, vous avez de très gros problèmes de santé. Les paquetages instantanés ont leurs propres référentiels, contrôlés par Canonical, comme les référentiels Ubuntu standard habituels. Vous pouvez continuer et installer des .debfichiers de partout, mais ce sera votre choix et non un problème de conception.

  3. Installation. Les AppImages sont censées être l'équivalent des "exécutables portables de Windows". Toutes les bibliothèques sont autonomes et n'importe quel utilisateur peut simplement télécharger et exécuter l'une de celles-ci. D'autre part, les snappaquets sont des paquets appropriés, et ils doivent être installés (en tant que root, ou avec sudo) via le gestionnaire de paquets approprié ( snap install tic-tac-toegénère une erreur: il faut sudo!)

  4. Suppression. Pour supprimer un package d'instantané, vous devez utiliser le gestionnaire de packages snap remove ...avec les autorisations appropriées. Les images, en revanche, elles ne sont que "là-bas". Donc, tout utilisateur ne veut pas cette Appimage? Il / elle supprime simplement le fichier et il est parti.

Bien que je conseille fortement de faire preuve de prudence lors de l'utilisation d'Appimages, j'en utilise personnellement moi-même.

Je les trouve particulièrement utiles sur mon système de travail, où je n’ai pas d’ rootaccès (seul l’administrateur en a), mais j’ai besoin de la dernière version d’un logiciel particulier que, heureusement, le développeur a fourni sous forme Appimage.

J'ai un peu peur que du code malveillant soit effectivement contenu dans celui-ci, j'ai donc vérifié autant que possible l'identité de l'éditeur. Je ne suis pas sûr à 100% que ce logiciel soit sans danger, mais j'ai fait tout ce que je pouvais.

dadexix86
la source
2
Fondamentalement, tout le monde essaie d'implémenter le packaging d'applications OSX sur Linux, mais rien n'y fait.
OrangeDog
2
Je n'ai aucune idée de la façon dont cela fonctionne :) Il est certain que snap et Appimages ne fonctionnent pas bien avec les logiciels comportant de nombreuses dépendances partagées entre de nombreux autres logiciels. Ils fonctionnent parfaitement avec des logiciels déjà autonomes ou avec peu de dépendances, mais le risque est de disposer de nombreuses copies de la même bibliothèque effectuant la même tâche, comme dans Windows. Cela devrait être résolu en paquets logiciels instantanés (un logiciel dépendant de la bibliothèque d'images instantanées installe cette bibliothèque avec cette version, puis un autre logiciel nécessitant la même version de bibliothèque peut l'utiliser, comme avec le système habituel).
dadexix86
Les applications OSX (et iOS) fonctionnent comme AppImage (il suffit de télécharger et d’exécuter un fichier à la fois), mais avec la sécurité snap de la sandbox.
OrangeDog
OSX essaie de s'en débarrasser et n'autorise que les installations à partir de son magasin.
LtWorf
AppImage devrait en effet contenir une option pour Sand Boxing. J'espère que nous verrons cela à l'avenir.
Royi
20

Avant de pouvoir exécuter une AppImage, vous devez la rendre exécutable. Ceci est une fonctionnalité de sécurité Linux. Il existe deux méthodes principales pour créer un exécutable AppImage:

1. Utiliser l'interface graphique

Comment créer un exécutable AppImage

ou

2. Sur la ligne de commande

chmod a+x Some.Appimage

Maintenant, double-cliquez sur votre fichier pour l'exécuter OU Cliquez avec le bouton droit de la souris> Exécuter.

probono
la source
15

Alors que Snap se concentre uniquement sur Ubuntu, AppImage est une distribution croisée et fonctionne également sur Fedora, Debian, OpenSUSE, CentOS, etc.

AppImage n'a besoin d'aucun support d'exécution ni d'infrastructure de la distribution Linux et s'exécute donc pratiquement partout. Il permet aux auteurs d'applications d'envoyer leur logiciel directement aux utilisateurs de Linux, comme Windows et OS X; sans Canonical ou qui que ce soit d'autre "entre" l'auteur du logiciel et l'utilisateur final.

Si une application est fournie au format AppImage, un utilisateur peut accéder au site Web de l'auteur d'origine pour le télécharger, par exemple, MuseScore à l' adresse https://musescore.org/fr/download . Rendre l’appImage exécutable (à l’aide de votre gestionnaire de fichiers ou chmod a+x ./yourAppImage), vous pouvez alors exécuter l’application simplement en double-cliquant dessus.

probono
la source
Donc, si je veux installer Leafpad, est-ce que je clique sur "Configurer-moi"? Qu'est-ce qui va arriver ensuite? Et comment puis-je désinstaller une AppImage? Je regarde bintray.com/probono/AppImages mais je n'ai pas trouvé de réponse. Si vous le permettez, vous pouvez modifier votre réponse pour y inclure les informations, ainsi que tout ce que les utilisateurs aimeraient savoir.
DK Bose
2
Vous ne savez pas trop si ce serait une solution pour vous, mais Leafpad est disponible dans les sources 16.04 prêtes à l'emploi (version: 0.8.18.1). La version en feuilles proposée par bintray est "seulement" 0.8.17 - donc encore plus ancienne.
dufte
1
C'est vrai, mais pour quelqu'un qui veut juste tester les eaux, c'est, comme dit le site, un genre de "Bonjour le monde".
DK Bose
Excellent. Après cela, vous pouvez simplement double-cliquer. C'est ce dont j'avais besoin!
Dawoodjee
5

Les applications nécessitent l’utilisation de FUSE. Le système de fichiers dans l'espace utilisateur (FUSE) est un système qui permet aux utilisateurs non root de monter des systèmes de fichiers.

Installer FUSE

De nombreuses distributions ont une configuration FUSE opérationnelle prête à l'emploi. Toutefois, si cela ne fonctionne pas pour vous, vous devrez peut-être installer et configurer FUSE manuellement.

Par exemple, sur Ubuntu:

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

Par exemple, sur openSUSE:

sudo zypper install fuse

Se retirer

Si vous ne souhaitez pas installer FUSE, vous pouvez monter ou extraire AppImage.

Pour monter AppImage et exécuter l'application, exécutez simplement

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

Si cela ne fonctionne pas, vous pouvez avoir une AppImage de type 2 expérimentale . Cela nécessite que vous passiez -o offset=...à la mountcommande. Exécutez AppImage avec --appimage-offsetpour trouver le nombre correct pour le décalage.

insigne
la source
Après avoir écrit la 3ème ligne ( sudo usermod -a -G fuse) suivie de mon nom d'utilisateur, je continue à recevoir le usermod: group 'fuse' does not exist... Une idée sur pourquoi?
Martin
Bonjour @Martin, dans Ubuntu par ex. Si vous essayez d'exécuter une AppImage i686 (32 bits) dans un système x86_64 (64 bits), vous obtiendrez cette erreur, sauf si les bibliothèques 32 bits sont installées. Vous devriez probablement spécifier le système d'exploitation et l'application que vous essayez d'exécuter la prochaine fois pour obtenir de l'aide.
Léo
Bonjour @Leo, c'était il y a longtemps, mais je viens d'entrer les sudo apt-get install fuse sudo modprobe fuse sudo usermod -a -G fuse $USERlignes sur mon Windows 10 64. La réponse que je commente ne donne aucune spécification 32/64 et je ne vois pas où devrais-je le spécifier ou pourquoi ...
Martin