Comment créer un package .deb d'un programme.sh (ensemble de scripts) en bash

Signaler
Messages postés
37
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
3 juillet 2020
-
Messages postés
29348
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
21 octobre 2020
-
Bonjour,

je m'explique, je suis entrain de développer un script "couteau suisse" qui permet de réaliser un ensemble de tâche d'admin sur linux. Le problème c'est que je ne sais pas comment packager un ensemble de sous dossier contenant des scripts d'appel.

J'ai déjà réussi avec build essential à packager simplement le fichier main.sh, mais pas le reste du projet ce qui, avouez le est bien contraignant.

ex :

projet
-- main.sh
---- source.d
--------- script1.sh
---------- script2.sh
....

Je vous remercie de votre aide par avance

4 réponses

Messages postés
29348
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
21 octobre 2020
6 948
Bonjour,

Il suffit de regarder la documentation ou un tutoriel, par exemple celui-ci.

Bonne chance
Merci, mais j’ai regardé la doc et ça n’explique pas ce que je veux faire de manière précis.
Messages postés
29348
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
21 octobre 2020
6 948
Bonjour,

Pardon pour la réponse tardive, tu peux regarder ce tutoriel qui est plus détaillé.

Bonne chance
Salut, j’étais déjà tombé sur ce tuto, il explique la démarche à suivre pour un seul fichier .sh alors que dans le cadre d’un projet perso, j’ai un ensemble de fichier .sh avec des sous dossier, voilà le problème lol
Salut merci de ta rep, je vais voir mon côté si j'y arrive
Bonnes fêtes de fin d'année :)
Messages postés
29348
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
21 octobre 2020
6 948
Bonjour,

En fait ce qu'il faut bien comprendre, c'est que ce qui est à la racine du paquet (hormis
DEBIAN/
) est décompressé dans le répertoire
/
du système sur lequel le paquet est installé. Donc, il faut au moment de générer ton paquet construire cette arborescence.

Dans cet exemple, seul un fichier est donc déployé (
/usr/bin/myecho
), ce qui explique pourquoi à la racine du paquet tu as un répertoire
DEBIAN/
(qui contient les méta données du paquets) et un répertoire
usr/
(qui sera décompressé dans
/usr
). Si tu avais pour ce script mettons une image, l'endroit "logique" serait de la mettre par exemple dans
/usr/share/images/myecho/foo.jpg
. Si tu avais en plus un fichier de configuration, un chemin logique serait
/etc/myecho/myecho.conf
. Si enfin tu avais un autre script, il serait logique de le mettre dans
/usr/bin/myecho2.sh
Ton paquet suivrait donc la hiérarchie suivante :


-->myecho/
--->DEBIAN/
----->control (fichier décrivant les informations relatives à notre paquet)
----->postinst (script exécuté après l'installation du paquet)
----->postrm (script exécuté après la désinstallation du paquet)
--->etc/
----->myecho
------->myecho.conf

--->usr/
----->bin/
------->myecho (notre script, exposé ci-dessus)
----->share/
------->images/
--------->myecho
----------->foo.jpg

------->doc/
--------->README (informations relatives à l'utilisation de myecho)
--------->copyright
--------->changelog (changements apportés par rapport à la dernière version)
--------->changelog.Debian (idem, mais seulement pour le paquet Debian)


Les chemins "logiques" dont je parle sont la conséquence de la FHS.

Bonne chance