Paquet Debian créant les répertoires nécessaires dans preinst
Question
J'ai la structure Debian suivante:
- debian / usr / share / test
- debian / usr / share / test / test
- debian / usr / share / test / test / a
- debian / usr / share / test / test / b
Après avoir construit le paquet avec dpkg-deb --build et l’avoir installé avec dpkg -i, il ne semble pas que les dossiers soient testés automatiquement s’ils n’existent pas. Dois-je les créer manuellement dans le script preinst?
UPDATE: le problème était dû à une erreur commise par preinst. Le décompactage n'a donc pas eu lieu.
Laurent
La solution
Regardez un exemple de mine ici .
debian/DEBIAN
debian/usr/bin
debian/usr/lib
Vous avez plusieurs choix:
- Remplissez les répertoires avec les fichiers avant de générer le package (package binaire)
- Construisez un paquet source où MAKE sera appelé pour construire le paquet et l'installer.
Dans le premier cas, vous n'avez pas besoin de créer les répertoires à l'aide d'un script preinst
: la hiérarchie des dossiers sera créée si nécessaire par le gestionnaire de packages lors de son installation.
Dans le deuxième cas, vous devrez utiliser mkdir -p
pour créer la hiérarchie de dossiers pendant la phase install
.
Au cours de l’année écoulée, j’ai expérimenté 3 méthodes différentes de packaging pour les dépôts Debian et, croyez-moi, les détails à prendre en compte sont nombreux. Un soulagement a été de faire connaissance avec Launchpad et son processus de publication d’APP.
Autres conseils
Vous avez besoin de ceux-ci dans le paquet nommé tmp
ou identiques au premier paquet répertorié dans debian / control, selon la version du mode debhelper compat choisi.
E.g. un appel depuis l'un des exemples de fichier debhelper
:
$(MAKE) prefix=`pwd`/debian/`dh_listpackages`/usr install
Il vous manque ce niveau d'indirection ici.