Backporter un packet Debian de testing vers stable
Cet article facilite la mise à jour un logiciel par création d'un paquet Debian à partir des sources disponibles dans les dépôts testing.
Ce guide est testé sur:
- Debian 7.0 Wheezy
Ce guide est testé avec ces logiciels:
- iproute2
- openvpn (dépend de iproute, iproute2)
Avertissement
Le succès d'un backport de paquet dépends grandement des dépendances du paquet backporté. Cet article n'est pas un guide exact pas à pas de backport. C'est un aide mémoire des étapes à passer pour créer un backport. Il n'y a aucune garantie de résultat.
Prérequis
Ce guide nécessite:
- l'ajout des dépôts de sources testing, comme décrit par Configurer les dépôts de sources Testing sur Debian stable.
Paramètres
Renseignez le nom du paquet à backporter:
PACKAGE="openvpn"
Mise en place
Détectez le nom du paquet des sources du paquet à backporter:
SRC_PACKAGE="$(command apt-cache show "${PACKAGE}" \
| command grep --max-count=1 "Source:" \
| command cut --delimiter=' ' --fields=2)"
test -z "${SRC_PACKAGE}" && SRC_PACKAGE="${PACKAGE}"
Préparation de l'environnement
Installez les logiciels nécessaires:
command apt-get install build-essential fakeroot
Installez les dépendances de construction du paquet backporté:
command apt-get build-dep "${SRC_PACKAGE}"
Remarque: En cas d'échec de la commande ci-dessus, essayez de backporter les paquets bloquants.
Obtention des sources
Placez-vous dans le dossier dédié à la compilation des sources:
command pushd '/usr/src'
Récupérez les sources du paquet backporté:
command apt-get source "${SRC_PACKAGE}"
Détectez le nom du dossier de source créé:
SOURCE_PATH="$(command find '/usr/src' -maxdepth 1 -type d -name "${SRC_PACKAGE}-*" \
| command sort \
| command tail -n 1)"
Construction du paquet
Placez-vous dans le dossier des sources du paquet:
command cd "${SOURCE_PATH}"
Lancez la création du backport:
command dpkg-buildpackage -rfakeroot
Remarque: Ignorez l'avertissement qui suit à la fin de la création du paquet:
(WARNING: Failed to sign .dsc and .changes file)
Une fois la construction terminée, sortez du dossier des sources:
command popd
Installation du paquet
Obtenez la liste des paquets créés:
command cat "${SOURCE_PATH}/debian/files" \
| command cut --delimiter=' ' --fields=1 \
| command sed -e "s|^|$(command dirname "${SOURCE_PATH}")/|"
Installez les nouveaux paquets à l'aide de la commande 'dpkg -i' ou 'gdebi'.
Remarque: La commande qui suit installe automatiquement les paquets listés par la commande ci-dessus:
command cat "${SOURCE_PATH}/debian/files" \
| command cut --delimiter=' ' --fields=1 \
| command sed -e "s|^|$(command dirname "${SOURCE_PATH}")/|" \
| command xargs dpkg -i