Une grande partie de l'administration des machines Linux, en particulier des machines distantes, consiste à gérer et à installer des logiciels. Lorsque quelque chose ne va pas avec une application locale ou lorsque quelque chose sur le système de fichiers tombe en panne et doit être réparé, vous voudrez souvent pousser les mises à jour sans avoir à parcourir de nombreux kilomètres pour vous asseoir devant un écran physique. Comme je l'explique dans mon cours Pluralsight sur la maintenance et le dépannage du système Linux, de nombreux problèmes peuvent être résolus grâce aux scripts Bash bien sûr, mais il existe encore de nombreux cas où il n'y a pas d'alternative à un bon binaire à l'ancienne.
Imaginez que certains de vos systèmes distants nécessitent l'installation de nouvelles applications, afin que les membres de l'équipe utilisant ces ordinateurs puissent exécuter certaines fonctions commerciales. Pouvoir tirer parti de l'intégration et de l'automatisation de l'un des principaux systèmes de référentiel Linux, tels que Debian ou RPM, peut faciliter considérablement vos tâches d'administration.
Comme Linus Torvalds ne se lasse pas de nous le rappeler, le problème avec de nombreux systèmes de gestion de logiciels Linux est qu'il existe trop de systèmes de gestion de logiciels Linux. Au fil des ans, le développement d'applications et même l'adoption de Linux ont été compliqués par le fait que tout le temps et le travail que vous investissez dans la préparation de vos logiciels pour, par exemple, les dépôts Debian, ne vous aideront pas si vous souhaitez les intégrer aux systèmes RPM. Et ni l'un ni l'autre n'aidera le gestionnaire Zypper de SUSE.
Une solution prometteuse au problème du silo logiciel consiste à distribuer des applications avec leurs propres environnements autonomes qui fonctionneront sur n'importe quelle distribution Linux. Une option d'une norme dans ce domaine jeune et en pleine croissance est AppImage.
Travailler avec AppImages
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Je suis all-in sur AppImage. Comme les autres systèmes de gestion de paquets que j'ai mentionnés, il y a beaucoup de complexité disponible si vous le souhaitez. Mais, à la base, AppImages est en fait assez simple. Plutôt que de travailler via un référentiel comme la plupart des autres gestionnaires de packages, AppImages sont des fichiers uniques et autonomes qui peuvent être envoyés directement ou partagés via un site Web.
Voici une illustration de sa beauté. Pendant que je jouais avec AppImages, je suis tombé sur une très vieille discussion sur un forum technique qui m'a conduit à un projet GitHub tout aussi ancien et abandonné et aux fichiers YAML et recettes associés. Ils ont été conçus pour créer automatiquement l'infrastructure plutôt complexe requise pour préparer l'archive nécessaire à la génération d'un package AppImage. Bien que cette infrastructure ait été entièrement conçue pour fonctionner sur une version d'Ubuntu vieille de cinq ans, lorsque j'ai tout assemblé et exécuté le appimagetool
commande contre lui, il a créé un fichier AppImage qui a fonctionné de manière transparente sur mon bureau actuel. Je ne pense pas qu'il y ait trop de projets GitHub vieux de cinq ans de cette complexité qui pourraient fonctionner avec d'autres technologies sans une refonte sérieuse.
Mais je ne vais pas y aller. Au lieu de cela, je vais vous montrer comment cela fonctionne avec une application Hello World très simple. Tout d'abord, assurez-vous que le package AppStream est installé localement.
Pour le système basé sur Debian, exécutez :
$ sudo apt install appstream
Et pour les systèmes RPM, utilisez :
$ sudo dnf install appstream
Clonez le référentiel Git référencé dans cet article, sur lequel j'ai basé cet exemple :
$ git clone https://github.com/boolean-world/appimage-resources
$ cd appimage-resources
$ ls hello-world-appimage
Ensuite, cd
dans le nouveau répertoire créé par Git et jetez un coup d'œil. Il y a deux répertoires ici. Utilisez hello-world-appimage
; l'autre est un projet plus complexe, et vous devriez également envisager de l'essayer.
Le helloworld.desktop
Le fichier est ce que les systèmes d'interface graphique Linux lisent pour savoir comment gérer la façon dont ils présentent une icône de bureau. Il s'avère que la façon dont le fichier est actuellement écrit vous causera des problèmes un peu plus tard, alors faites une modification mineure :ajoutez un Categories=
ligne et donnez-lui la valeur GNOME
. Et n'oubliez pas le point-virgule à la fin :
$ nano hello-world-appimage/helloworld.desktop
add Categories=GNOME;
Téléchargez une copie précompilée de appimagetool
binaire du projet AppImage GitHub. Assurez-vous de visiter le site GitHub - il y a beaucoup d'excellentes documentations et ressources là-bas. Une fois le binaire téléchargé, rendez le fichier exécutable et pointez-le vers hello-world-appimage
annuaire. Mais d'abord, vous devez lui dire quelle architecture vous voulez. Pour une raison quelconque, un outil dont le nom se termine par x86_64
est tout bancal quand il s'agit de choisir de construire une application en utilisant x86_64 ou non (je ne suis pas sûr de ce qui se passe là-bas) :
$ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage
Si vous ne voyez aucun message d'erreur agressif, vous êtes prêt à essayer :
$ ls
$ ./hello-world-appimage-x86_64.AppImage
Conclusion
AppImage est un choix incroyablement efficace pour la gestion des packages. En l'explorant, je pense que vous constaterez qu'il s'agit d'une excellente alternative aux distributions Linux par défaut fournies.