Créer un «dummy-package» sous Debian ou Ubuntu

Par Jean-François VIAL, le lundi 10 août 2009
Difficulté : 3/5 — Categorie : Choses utilesMots clés : , , , , ,

Il arrive parfois qu'une dépendance d'un paquet soit manquante ou ne puisse être installée car un autre programme, compilé localement ou installé par ailleurs, remplisse la fonction, mais sans le signaler au système de gestion de paquets.

Exemple : mailx sur un serveur où Zimbra est installé.
Lorsqu'on cherche à installer mailx, le système de paquetage nous indique qu'il lui faut un MTA et nous propose exim ou postfix. Or Zimbra possède déjà son propre MTA (postfix en l'occurrence) et nous n'allons pas en installer un deuxième.

Solution : un «dummy-package»

Un «dummy-package» est un paquet vide, ayant pour fonction soit de combler artificiellement une dépendance, soit d'en ajouter artificiellement. Par exemple, le paquet linux-headers dépend toujours de la version du noyau installée : son installation implique l'installation des headers correspondant au noyau actuellement installé.

Création d'un dummy-package

Installons le paquet "equivs" qui permet de créer des dummy-packages, justement

sudo apt-get install equivs

Créons un dossier pour notre paquet et création du fichier de configuration

mkdir dummy-package; cd dummy-package

Facultatif : crée un fichier de configuration par défaut (utile pour connaitre le formatage)

equivs-control dummy-package

Remplacer le contenu du fichier de configuration de notre paquet, ou éditer le fichier "dummy-package" via

 nano dummy-package

et y mettre

Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: dummy-package
Version: 1.0
Maintainer: votre nom <vous@domaine.tld>
Pre-Depends:
Depends:
Recommends:
Suggests:
Provides: <liste de ce qui fournit ce paquet séparée par des virgules>
Replaces:
Description: Paquet vide permettant de combler les dépendances suivantes : <liste de ce qui fournit ce paquet>

Créons et installons notre paquet

equivs-build dummy-package
sudo dpkg -i dummy-package_1.0_all.deb

Exemple de dummy-package

Si on reprend l'exemple de mailx, notre dummy-package aura le fichier de configuration suivant :

Section: misc
Priority: optional
Standards-Version: 3.6.2

Package: dummy-mta
Version: 1.0
Maintainer: votre nom <vous@domaine.tld>
Pre-Depends:
Depends:
Recommends:
Suggests:
Provides: mail-transport-agent
Replaces:
Description: Paquet vide permettant de combler la dépendance à mail-transport-agent

Simple et efficace.

Commentaires

Ajouter un commentaire