====== 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) : [...] # 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. La commande ''uscan'' ne doit pas être lancée dans le dossier ''debian/''. ''uscan'' « lit » la première ligne (cela correspond à la dernière version) du fichier ''changelog''. Il va ensuite créer un lien symbolique. uscan --force-download Si il n'existe pas de fichier ''watch'', on télécharge les sources de manière classique. ===== Gérer les patches ===== Consultez la [[linux:debian:quilt|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.