Compilation de paquets de la distribution debian

De Wiki doc


Sous GNU/Linux Debian, il est possible de compiler et empaqueter un programme via les sources mises à disposition par ses mainteneurs dans les dépôts APT officiels. Cette méthode permet de générer un fichier .deb utilisant les mêmes options que le paquet proposé de base dans la distribution (ceci s'inscrit dans la démarche ReproducibleBuilds du projet). Il est alors possible d'y apporter ses propres modifications, appliquer des patchs ou utiliser des options de compilations différentes avant génération du paquet.

De plus et contrairement à la méthode traditionnelle du ./configure ; make puis make install, le procédé présenté dans cette documentation rend trivial l'installation des dépendances permettant la compilation complète du code sans devoir le faire, fort péniblement, de façon empirique et après s'être tapé une foultitude d'erreurs par itération de compilation (quand on y arrive, ce qui n'est même pas joué d'avance...). Enfin, la phase de compilation et d'empaquetage se réalise d'elle même et sans erreur (comme c'est agréable). Il en résulte un certain nombre de fichiers .deb permettant l'installation du programme.

Ajout de la branche contenant les sources des paquets Debian Bookworm à la liste d'APT

echo "deb-src http://ftp2.fr.debian.org/debian bookworm main" >> /etc/apt/sources.list

Mise à jour du catalogue APT

apt update

Téléchargement des dépendances nécessaires à la compilation du binaire et à la construction de son paquet (ffmpeg pour l'exemple)

apt build-dep ffmpeg

Création du répertoire de travail

mkdir /usr/local/src/ffmpeg && cd /usr/local/src/ffmpeg

Téléchargement des fichiers sources et de construction

apt source ffmpeg

Déplacement dans le répertoire des sources du programme

cd ffmpeg-5.1.6

ASTUCE

Il est possible de modifier les options de compilation dans le script du mainteneur pour la construction du paquet ./debian/rules.

Compilation et empaquetage du programme

dpkg-buildpackage -us -uc -b

Installation sur la machine cible. Les dépendances du paquet seront téléchargées sur le dépôt distant ou devront elles-aussi être compilés puis empaquetées de la même manière

apt install ../ffmpeg_5.1.6-0+deb12u1_amd64.deb

Test du programme

ffmpeg -protocols

Sources