Backporter un packet de Debian testing (5.0 Lenny) vers Debian stable (4.0 Etch)
Que ce soit pour des raisons fonctionnelles, ou pour corriger un bug, il est parfois utile de mettre en place une version plus récente d'un logiciel. Sous Debian, il est très simple de mettre à jour un logiciel tout en continuant à utiliser les paquets Debian. Il suffit pour cela d'obtenir les sources du paquets depuis la version testing (Lenny) ou unstable (Sid) de Debian, et de les compiler. Je me propose dans cet article de vous guider au travers des différentes étapes nécessaires à la création d'un backport.
Important : Sachez que la réalisation de backport peut très bien se passer pour certains paquets, et devenir un enfer pour d'autres. Cet article n'est pas un guide exact pas à pas pour réaliser tous vos backports. Il s'agit plus d'un aide mémoire des étapes à passer pour créer un backport. Il n'y a aucune garantie de résultat.
Remarque : Dans ce guide, je compile lespaquets à l'aide de l'utilisateur "root". Ce n'est pas conseillé, et je le fait uniquement pour des raisons de simplification du guide. De plus, les sources utilisées provenant d'une source Debian, je leur accorde une certaine confiance pour ne pas venir pourrir mon système. Cependant, il est recommandé d'utiliser un utilisateur sans privilèges pour compiler les sources. Il est alors nécessaire d'utiliser la commande fakeroot.
Prérequis
Avant toute chose, assurez-vous que vous disposez des outils nécessaires à la décompressions de sources de paquets debian :
/usr/bin/apt-get install build-essential fakeroot
Création du backport
Récupération des sources depuis Debian testing
La première étape de la création d'un backport consiste à récupérer les sources du logiciels dont nous souhaitons obtenir une version récente. Pour ce faire, il est nécessaire d'ajouter temporairement les dépôts de sources de Debian testing à votre configuration Apt. Cela se fait simplement via la ligne de commande suivante :
/bin/echo "# Debian testing sources.
deb-src ftp://ftp2.fr.debian.org/debian/ testing main contrib non-free" \
| /usr/bin/tee /etc/apt/sources.list.d/testing-all-src.list
Une fois ceci fait, mettez à jour la liste des paquets disponibles:
/usr/bin/apt-get update
Placez-vous maintenant dans le dossier /usr/src. Par convention, c'est le dossiers ou sont placées les sources des logiciels installés à partir des sources sur votre système. C'est dans ce dossier que nous allons construire notre backport.
cd /usr/src
Récuperez les sources du paquet que vous souhaitez backporter, dans mon cas, il s'agit du paquet libimage-exiftool-perl :
/usr/bin/apt-get source libimage-exiftool-perl
Création du paquet backporté
Avant de lancer la compilation du paquet, il est nécessaire d'installer les éventuelles dépendances de compilation :
/usr/bin/apt-get build-dep libimage-exiftool-perl
Si cette commande trouve tous les paquets nécessaires, vous êtes go pour lancer le backport de votre paquet. Si certains paquets sont manquant, ou trop anciens, il est nécessaire de les backporter eux aussi. Veuillez donc recommencer ce guide depuis le début pour ces paquets.
Une fois toutes les dépendances de construction installées sur votre système, vous pouvez lancer la compilation. Placez vous dans le dossier créé lors de la récupération des sources du logiciel :
cd /usr/src/libimage-exiftool-perl-*
Et exécutez la commande de création du paquet (cela peut durer entre quelques minutes et plusieurs heures) :
/usr/bin/dpkg-buildpackage -rfakeroot
A la fin de la construction du paquet, vous vous verez afficher l'avertissement suivant :
(WARNING: Failed to sign .dsc and .changes file)
Vous pouvez ignorer ce message. Il n'a que peut d'importance si vous ne comptez pas diffuser votre paquet Debian.
Une fois la construction terminée, vous trouverez les paquets créé dans le dossier /usr/src:
ls /usr/src/*.deb
Vous pouvez maintenant retirer le dépôts des sources de Debian testing de votre configuration Apt :
/bin/rm /etc/apt/sources.list.d/testing-all-src.list
/usr/bin/apt-get update
Installation du paquet backporté
Afin d'utiliser votre backport, vous devez d'abord l'installer à l'aide de la commande "dpkg -i" :
/usr/bin/dpkg -i /usr/src/libimage-exiftool-perl_7.30-1_all.deb