Outils pour utilisateurs

Outils du site


linux:debian:dpkg-buildpackage

Ceci est une ancienne révision du document !


Comment recompiler un paquet Debian

Variables d'environnement

On doit définir 3 variables d'environnement (si le shell est bash, voici les lignes à rajouter) :

.bashrc
[...]

# For build .deb
DEBEMAIL=""
DEBFULLNAME=""
export DEBEMAIL DEBFULLNAME

export QUILT_PATCHES=debian/patches

Il faut définir DEBEMAIL et DEBFULLNAME.

Les sources

Dans le(s) dépôt(s) officiel(s)

Si le paquet existe déjà, on peut récupérer les sources amonts à partir du dépôt, il faut « décommenter » la ligne deb-src dans le fichier /etc/apt/sources.list.

apt source nom-du-paquet

Parfois les « sources » contiennent des patches, mais l'on ne souhaite pas les appliquer dans l'immédiat. Voici la démarche à suivre.

1. On télécharge les sources sans effectuer la décompression de l'archive

apt-get --download-only source nom-du-paquet

2. On extrait l'archive

dpkg-source --skip-patches -x nom-du-paquet.dsc

À partir du dossier debian/

Ce dossier contient plusieurs fichiers, notamment changelog et watch. On peut utiliser l'utilitaire uscan (paquet devscript) pour télécharger les sources.

cd debian/
uscan --force-download

Gérer les patches

Consultez la page dédiée à cette partie.

Mettre à jour debian/changelog

Une fois que l'on a fait les modifications souhaitées on peut mettre à jour le fichier debian/changelog.

dch --local pseudo

pseudo est un suffixe qui sera rajouté au paquet pour indiquer que le paquet a été reconstruit.

Recompiler

dpkg-buildpackage -us -uc -tc

Les options -us -uc évite une erreur lors de la signature du paquet (c'est pas indispensable dans notre cas).

Installation

Pour installer le (ou les) .deb.

dpkg -i *.deb

Conclusion

On peut conserver l'archive qui correspond au dossier debian/ pour une mise à jour ultérieure.

linux/debian/dpkg-buildpackage.1714653097.txt.gz · Dernière modification : 2024/05/02 14:31 de olivier

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : Public Domain