Vous n'êtes pas identifié(e).
Pages : 1
Hors ligne
====== 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 ?
Amitié, Joel
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
--prefix=PREFIX est une option parmi tant d'autres, que l'on peut voir avec la commande :
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
saque eud dun (patois chtimi : fonce dedans)
Hors ligne
Hors ligne
==== 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
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
Pages : 1