logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 21-06-2011 07:24:19

wilfrid
Membre
Distrib. : 6.0 Squeeze
Noyau : 2.6.32-5-686 / i686 GNU/Linux
(G)UI : KDE
Inscription : 21-03-2011
Site Web

Fabriquer un paquet deb

Bonjour,

Au préalable, ce post aurait pu aller dans d'autres rubriques. Cependant, il me semblait tout a fait pertinent de l'associer à processus qui est associé à ma demande.

Je n'ai pas trouvé de tuto très clair pour la création d'un paquet deb. Est-ce que vous auriez un tuto qui à partir des sources d'un application me permettrait créer un paquet deb sans omettre la possibilité de choisir les options de configuration dans la compilation de l'application ?

Je vous remercie pour votre aide,

Hors ligne

#2 21-06-2011 08:17:29

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : Fabriquer un paquet deb

Salut, le tuto là fait-il ton affaire, une fois ?
http://debian-facile.org/doc:reseau:apa … pot-debian

Sinon, j'ai ce tuto sous la main aussi :


====== Création d'un fichier.deb ======

===== Général =====
==== Création de la structure ====

Créer un répertoire portant le nom du package à créer. Exemple pour : nom-du-paquet.deb

  mkdir $HOME/nom-du-paquet/
  cd $HOME/nom-du-paquet/

ensuite il faut créer les fichiers suivants :

  mkdir DEBIAN
  touch DEBIAN/control
  touch DEBIAN/postinst
  touch DEBIAN/postrm
  touch DEBIAN/preinst
  touch DEBIAN/prerm
  chmod 755 DEBIAN/post*
  chmod 755 DEBIAN/pre*

==== Le fichier control ====

Ce fichier donne les informations essentielles à l'utilitaire de packages (dpkg par exemple) pour utiliser le package.\\
Il est constitué de plusieurs champs, tous sous la forme **Nom du champ** : //valeur//

=== Exemple d'un fichier control ===

<code bash>
Package: Nom_Du_Paquet
Version: 1.0
Section: base
Priority: optional
Architecture: all
Depends: bash
Maintainer: Nom Prénom <user@domaine.com>
Description: script de test
Description des différents champs:
</code>

  - Package : c'est le nom du package;
  - Version : c'est le numéro de version du package. //Si on modifie notre package, il faut penser à incrémenter ce nombre afin que le système comprenne qu'il remplace la précédente version//).
  - Section : base.
  - Priority : c'est la priorité d'installation du package.
  - Architecture : c'est l'architecture sur laquelle est utilisable le package.
  - Depends : c'est ce qui doit être présent dans le système pour que le package puisse être utilisé.
  - Maintainer : ce sont les informations sur la personne qui s'occupe du paquet.
  - Description : c'est la description du paquet. On peut expliquer deux trois choses sur le paquet si nécessaire.

==== Configuration des fichiers avant et après installation du paquet ====

Les fichiers :
   postrm, postinst, prerm, et preinst
sont simplement des **scripts** qui sont exécutés aux moments suivants:

  - postinst => après l'installation
  - preinst => avant l'installation
  - postrm => après la désinstallation
  - prerm => avant la désinstallation

== Exemple : ==
de postinst et de postrm avec ajout puis suppression de lignes dans la crontab utilisateur.

**-> postinst**

<code bash>
#!/bin/bash
echo "# ACTION DU SCRIPT # NOM_DU_PAQUET : ref: REFERENCE_UNIQUE
12 6 * * * $HOME/nom_du_binaire # NOM_DU_PAQUET : ref: REFERENCE_UNIQUE " >>
/var/spool/cron/crontabs/root
</code>

**-> postrm**

<code bash>
#!/bin/bash
cp /var/spool/cron/crontabs/root /tmp/crontab.tmp
cat /tmp/crontab.tmp |grep -v REFERENCE_UNIQUE > /var/spool/cron/crontabs/root
rm /tmp/crontab.tmp
</code>

C'est à vous de mettre ce que vous souhaitez dedans en fonction de vos besoins.

===== Ajout de vos fichiers =====

À la racine du répertoire de votre paquet, copiez vos fichiers en reproduisant une arborescence Linux.\\
Par exemple pour installer le script dans le répertoire **/usr/bin** :

  mkdir -p $HOME/nom-du-paquet/usr/bin
  cp test.sh $HOME/nom-du-paquet/usr/bin

===== Construction =====

Se placer dans le répertoire parent du paquet et construire le paquet par :

  cd $HOME
  dpkg-deb --build nom-du-script (sans le / de fin)

Et voilà vous avez un paquet **.deb** tout chaud!!

===== Ajouter le paquet =====

Reste à ajouter le paquet à notre dépôt (on est connecté sur le serveur hébergeant le dépôt) :

  reprepro -Vb /var/www/depots includedeb debian /CHEMIN_VERS_MON_FICHIER.deb


Si ça peut faire ton bonheur ? smile

Amitié, Joel


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#3 22-06-2011 17:21:37

wilfrid
Membre
Distrib. : 6.0 Squeeze
Noyau : 2.6.32-5-686 / i686 GNU/Linux
(G)UI : KDE
Inscription : 21-03-2011
Site Web

Re : Fabriquer un paquet deb

Merci Joël,

En ce qui concerne le lien, c'est intéressant, mais pour l'instant c'est un peu prématuré.

En ce qui concerne le tuto que tu mets à disposition, c'est plus ce que je recherche, mais il faut maintenant que je le teste pour voir si j'arrive à faire ce que je veux faire, c'est-à-dire adapter les options inscrites dans les sources d'une application à ce que je veux faire.

@bientôt,

Hors ligne

#4 22-06-2011 17:36:13

wilfrid
Membre
Distrib. : 6.0 Squeeze
Noyau : 2.6.32-5-686 / i686 GNU/Linux
(G)UI : KDE
Inscription : 21-03-2011
Site Web

Re : Fabriquer un paquet deb

Re merci,
Je viens de lire le tuto. Une question naïve : où se trouve les sources ? Est comment indiquer les options de compilation dans les sources ?
Lorsqu'on récupère les sources d'une application il y a une procédure qui passe par les commandes : ./configure && make && make install clean. Prenons l'exemple des sources d'Apache httpd-2.2.19.tar.gz.
1) je decompresse l'archive
2) je lis le fichier INSTALL pour avoir un guide pour l'installation
Dans le fichier install il est indiqué la commande :

./configure --prefix=PREFIX


--prefix=PREFIX est une option parmi tant d'autres, que l'on peut voir avec la commande :

./configure --help


Comment et où intègres-tu dans le tuto cette action dans la construction du paquet ?

Est-ce que mon propos est plus explicite ?

À bientôt,

Hors ligne

#5 23-06-2011 04:38:34

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : Fabriquer un paquet deb

Salut,

Ce tuto d'un ami est en cours de test, ce pourquoi il n'est pas sur le wiki df, je ne peux t'en dire plus présentement, la main passe a de plus doués que moi en l'affaire.

Amitié, Joel

saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#6 25-06-2011 09:30:46

wilfrid
Membre
Distrib. : 6.0 Squeeze
Noyau : 2.6.32-5-686 / i686 GNU/Linux
(G)UI : KDE
Inscription : 21-03-2011
Site Web

Re : Fabriquer un paquet deb

Peut-être que d'autres pourrons m'aider dans cette démarche.

Merci encore,

Hors ligne

#7 24-02-2013 16:52:13

sylvaindu92
Membre
Inscription : 24-02-2013

Re : Fabriquer un paquet deb

Bonjour,

je déterre ce topic car je cherche à faire un respring après installation d'un paquet .deb sur iphone

Je suis tombé sur ce passage :

==== Configuration des fichiers avant et après installation du paquet ====
Les fichiers :
   postrm, postinst, prerm, et preinst
sont simplement des **scripts** qui sont exécutés aux moments suivants:
  - postinst => après l'installation
  - preinst => avant l'installation
  - postrm => après la désinstallation
  - prerm => avant la désinstallation



Dans mon exemple j'ai créer ce fichier postinst

#!/bin/bash
echo "Make a Respring after installation"
echo "Make a Respring after installation"
echo " "
echo "Faite un Respring apres l'installation"
echo "Faite un Respring apres l'installation"
exit 0



Je voudrais savoir quel lige de code je doit ajouter pour obliger un respring après installation de mon paquet ?

Merci d'avance !

Dernière modification par sylvaindu92 (24-02-2013 16:55:34)

Hors ligne

Pied de page des forums