2026-02-03 13:22:20 +01:00
2026-02-11 15:07:55 +01:00

📦 Créer un paquet Debian (.deb)

Ce document explique pas à pas comment créer un paquet Debian propre, avec :

  • larborescence correcte
  • les dépendances
  • les scripts dinstallation
  • la construction du fichier .deb

Ce guide sadresse aux systèmes Debian / Ubuntu et dérivés.


- [Prérequis](#pr%C3%A9requis)
- [Arborescence minimale dun paquet Debian](#arborescence-minimale-dun-paquet-debian)
    - [Création des dossiers](#cr%C3%A9ation-des-dossiers)
- [Le fichier DEBIAN/control](#le-fichier-debiancontrol)
    - [Exemple complet](#exemple-complet)
    - [Champs importants](#champs-importants)
- [Gérer les dépendances](#g%C3%A9rer-les-d%C3%A9pendances)
    - [Syntaxe](#syntaxe)
    - [Exemples](#exemples)
- [Arborescence complète recommandée](#arborescence-compl%C3%A8te-recommand%C3%A9e)
    - [Création rapide](#cr%C3%A9ation-rapide)
- [Scripts Debian postinst, prerm, postrm](#scripts-debian-postinst-prerm-postrm)
    - [postinst après installation](#postinst-apr%C3%A8s-installation)
    - [prerm avant suppression](#prerm-avant-suppression)
    - [Permissions obligatoires](#permissions-obligatoires)
- [Construire le paquet .deb](#construire-le-paquet-deb)
- [Tester le paquet](#tester-le-paquet)
    - [Installation](#installation)
    - [Vérification](#v%C3%A9rification)
    - [Analyse qualité](#analyse-qualit%C3%A9)

Prérequis

Outils nécessaires :

sudo apt install build-essential dpkg-dev lintian

Optionnel mais recommandé :

sudo apt install fakeroot

Arborescence minimale dun paquet Debian

Un paquet Debian est une simple arborescence de fichiers.

Exemple pour un paquet mon-paquet version 1.0 :

mon-paquet-1.0/
├── DEBIAN
│   └── control
└── usr
    └── bin
        └── mon-paquet

Création des dossiers

mkdir -p mon-paquet-1.0/DEBIAN
mkdir -p mon-paquet-1.0/usr/bin

Le fichier DEBIAN/control

Le fichier control est obligatoire.

nano mon-paquet-1.0/DEBIAN/control

Exemple complet

Package: mon-paquet
Version: 1.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: Le Garage Numérique <contact@legaragenumerique.fr>
Depends: bash (>= 5.0), curl
Description: Exemple de paquet Debian
 Description longue sur plusieurs lignes.
 Chaque ligne doit commencer par un espace.

Champs importants

Champ Description
Package Nom du paquet
Version Version du paquet
Architecture amd64, all, arm64, etc
Depends Dépendances APT
Description Description courte + longue

Gérer les dépendances

Les dépendances sont listées dans Depends:.

Syntaxe

Depends: paquet1, paquet2 (>= 1.2), paquet3 | alternative

Exemples

Depends: python3, python3-requests
Depends: systemd | sysvinit

APT installera automatiquement les dépendances lors de linstallation.


Arborescence complète recommandée

mon-paquet-1.0/
├── DEBIAN
│   ├── control     -> Infos sur le paquet
│   ├── postinst    -> script éxécuté après la mise en place des fichiers (installation)
│   ├── prerm       -> script éxécuté avant la désinstallation
│   └── postrm      -> script éxécuté après la désinstallation
├── usr
│   ├── bin
│   │   └── mon-paquet
│   └── share
│       ├── doc
│       │   └── mon-paquet
│       │       └── README.md
│       └── applications
│           └── mon-paquet.desktop
└── etc
    └── mon-paquet
        └── config.conf

Création rapide

mkdir -p mon-paquet-1.0/{DEBIAN,usr/bin,etc/mon-paquet}
mkdir -p mon-paquet-1.0/usr/share/{doc/mon-paquet,applications}

Scripts Debian (postinst, prerm, postrm)

Ces scripts sont exécutés automatiquement.

postinst (après installation)

#!/bin/sh
set -e

echo "Installation terminée"

prerm (avant suppression)

#!/bin/sh
set -e

echo "Suppression du paquet"

Permissions obligatoires

chmod 755 mon-paquet-1.0/DEBIAN/postinst
chmod 755 mon-paquet-1.0/DEBIAN/prerm
chmod 755 mon-paquet-1.0/DEBIAN/postrm

Construire le paquet .deb`

dpkg-deb --build --root-owner-group mon-paquet-1.0

Résultat :

mon-paquet-1.0.deb

Tester le paquet

Installation

sudo apt install ./mon-paquet-1.0.deb

Vérification

dpkg -l mon-paquet

Analyse qualité

lintian mon-paquet-1.0.deb


✉️ Maintenu par Le Garage Numérique

Description
Example project to create a Debian package (.deb)
Readme 34 KiB
Languages
Shell 100%