Archive auto-extractible et auto-exécutable
Ce type d'archive permet de livrer un programme et de l'installer sur un PC sans avoir à fournir en plus une notice d'installation. Ce fichier contiendra l'archive (un fichier .tar) contenant tous les fichiers utiles au programme, le programme lui-même et un script d'installation.
Pour ce faire il sera nécessaire d'utiliser un programme spécial : makeself.
Réalisation
Nous devons fournir à tous nos gentils adhérents un petit script permettant de nettoyer le répertoire /var des fichiers devenus inutiles et qui prennent de la place.
Ce script a été écrit pendant les ateliers libres du mercredi par des adhérents intéressés à la programmation en langage interprété (BASH).
Cette application servira de base à ce tutoriel.
Principes
Le programme s'appelle menage, il est livré sous forme d'archive avec un numéro de version : menage-x.y.z.
Pour faciliter sa mise en place sur le PC, il est empaqueté dans une nouvelle archive, versionnée elle aussi, auto-extractible et auto-exécutable contenant le fichier script d'installation.
L'installateur vérifie que les conditions nécessaires à la bonne exécution du programme sont présentes, et si non les crée. Il cherche s'il n'y a pas une autre version d'installée, et si oui, la supprime avant d'installer la nouvelle.
Archive du programme
Le programme est composé (pour l'instant) des fichiers suivants dans le répertoire menage-0.6.0.
../menage-0.6.0/ menage-0.6.0.sh menage_historique-0.6.0.txt menage-notice-0.6.0.txt
Création de l'archive
Dans le répertoire père contenant menage-0.6.0/
tar -cf menage-0.6.0.tar menage-0.6.0/
Dans le répertoire maintenant archivé supprimer tous les fichiers et y placer le fichier menage-0.6.0.tar.
Ajouter le script d'installation dans ce même répertoire, sans oublier de le rendre exécutable !
../menage-0.6.0/ installe_menage.sh menage-0.6.0.tar
Création de l'archive d'installation
Pour créer ce type d'archive il faut en plus un programme spécifique : makeself.
Toujours dans le répertoire père de menage-0.6.0
makeself menage-0.6.0/ menage-0.6.0.run "SFX Extraction et installation de menage" installe_menage.sh