Version en ligne

Tutoriel : Créer un paquet .deb

Table des matières

Créer un paquet .deb
Vue d'ensemble
Arborescence
Le fichier "control"
Les scripts d'installation/suppression
Le contenu du paquet
Compilation et installation

Créer un paquet .deb

Vue d'ensemble

Si vous êtes sous Linux et que vous programmez, vous avez peut-être déjà eu besoin de distribuer votre programme. C'est relativement simple lorsqu'il ne s'agit que de le distribuer à petite échelle, mais cela peut vite devenir compliqué.
Ce tutoriel vous apprendra donc à distribuer vos programmes à grande échelle grâce au packaging Debian.

Vue d'ensemble

Arborescence

Si vous avez lu le tutoriel de M@teo21 sur Linux, et plus particulièrement la partie sur l'installation de logiciels, vous devriez savoir "en gros" ce qu'est un paquet .deb.
Pour ceux qui n'auraient pas suivi, un paquet .deb est en fait un dossier compressé contenant les éléments à installer et des informations sur le paquet.
Comme l'indique l'extension, un paquet .deb est utilisé sur les systèmes reposant sur Debian. C'est, si vous ne le savez pas encore, une distribution Linux qui a elle-même engendré d'autres distributions. Quelques exemples de distributions reposant sur Debian, utilisant apt-get, et par conséquent les .deb : (schéma par M@teo21)

Image utilisateur

Arborescence

Arborescence

Vue d'ensemble Le fichier "control"

Un paquet Debian est constitué de deux parties notables : un dossier contenant le nom du paquet, ses dépendances, etc. d'un côté, et les fichiers du programme de l'autre.
L'arborescence d'un paquet Debian se présente sous cette forme :

Citation

- dossier_du_paquet/
--- DEBIAN/
----- control
----- preinst
----- postinst
----- prerm
----- postrm
--- usr/
----- bin/
------- votre_programme

Pour l'exemple, j'utiliserai un petit script assez simple en guise de programme.

#!/bin/bash
echo "CAROTTE VOLAAAAANTE !"

(faites pas gaffe, juste un délire :-° )


Vue d'ensemble Le fichier "control"

Le fichier "control"

Arborescence Les scripts d'installation/suppression

Tout d'abord, commencez par créer un dossier du nom de votre programme (ou un autre, hein, on s'en fiche un peu ^^ ). Créez ensuite dans ce dernier un dossier nommé "DEBIAN" (tout en majuscules).
Dans le dossier juste créé, ajoutez un fichier nommé "control".
Ouvrez-le avec nano, vim, emacs, ou ce que vous voulez. Évitez cependant les programmes graphiques de type gedit.
Dans ce fichier, tapez les lignes suivantes, en complétant avec les informations nécessaires:

Dans le cas de mon script, ça donnera quelque-chose comme ça :

Citation : control

Package: carotte
Version: 1.0-sdz
Section: base
Priority: optional
Architecture: all
Depends: bash
Maintainer: outadoc <[email protected]>
Description: Affiche un truc inutile dans la console.
Homepage: http://outadoc.fr


Arborescence Les scripts d'installation/suppression

Les scripts d'installation/suppression

Le fichier "control" Le contenu du paquet

Vous pouvez, si c'est nécessaire (c'est facultatif), ajouter des scripts qui seront exécutés avant/après l'installation/la suppression du paquet. Ils auront pour nom :

Vous pouvez vous en servir pour déplacer des dossiers, afficher des instructions à l'écran, commander des pizzas...
Vos scripts doivent avoir une permission de 755 :

sudo chmod 755 post*
sudo chmod 755 pre*

Je vais, pour ma part, créer un fichier "postinst" :

#!/bin/bash 
echo "Fini ! Fais bien mumuse ! :D"

Le fichier "control" Le contenu du paquet

Le contenu du paquet

Les scripts d'installation/suppression Compilation et installation

Bon, on a fait le plus gros. Mais on n'a toujours pas fait l'essentiel ! En effet, jusqu'ici nous avons donné les informations sur le paquet, mais toujours pas le contenu en lui-même. Avouez que ça serait dommage de s'arrêter ici ! :)
Là, tout dépend du type de programme que vous empaquetez. Si, comme moi, vous n'avez qu'un simple programme ou script, nous allons supposer qu'il nous faut l'installer dans /usr/bin. Et bien dans ce cas-là, c'est très simple ! Placez-vous à la racine de votre paquet, où se trouve le dossier DEBIAN, et créez un dossier usr/, puis un dossier bin/ à l'intérieur du premier. Le principe est le même pour les autres: considérez la racine du paquet comme la racine du disque. Prenons un exemple : votre programme contient un bibliothèque dynamique libcarotte.so. Elle devra normalement être placée dans un dossier usr/lib dans le paquet, pour se retrouver dans /usr/lib une fois le .deb installé.


Les scripts d'installation/suppression Compilation et installation

Compilation et installation

Le contenu du paquet

Bon ! Si tout est prêt, on va pouvoir transformer tout ça en un paquet .deb ! :D
Mettez-vous dans le dossier qui contient votre paquet. Ensuite, tapez cette commande en tant que root :

sudo dpkg-deb --build nom_du_paquet

...où nom_du_paquet est le nom du dossier qui contient le dossier DEBIAN et tout le reste.
Et TADAAA ! Un fichier .deb du nom du dossier devrait avoir été créé dans le répertoire courant. Pour l'installer, tapez :

sudo dpkg -i nom_du_paquet.deb

Plus qu'à taper :

outadoc@outadoc-EasyNote-SB87:~$ carotte 
CAROTTE VOLAAAAANTE !

Voilà, vous avez réussi. Bon, j'espère que vous aurez une meilleure idée de programme que moi ! :p
Pour désinstaller le paquet, vous utiliserez la commande :

sudo apt-get remove nom_du_paquet

Vous savez maintenant comment créer un paquet Debian, bien plus simple pour installer un programme que d'utiliser de simples dossiers compressés. De plus, vous pourrez éventuellement envoyer vos paquets sur des dépôts après cela... Alléchant, non ? ;)


Le contenu du paquet