Compilation de paquets de la distribution debian
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
- https://www.debian.org/doc/
- https://www.debian.org/doc/manuals/maint-guide/
- hiérarchie des commandes : https://www.debian.org/doc/manuals/maint-guide/build.fr.html#hierarchy
- https://manpages.debian.org/unstable/dpkg-dev/dpkg-buildpackage.1.en.html
- https://manpages.debian.org/unstable/debhelper/dh_auto_configure.1.en.html
- https://wiki.debian.org/ReproducibleBuilds