4 votes

Quel est le processus détaillé de résolution de `${shlibs:Depends}` lors de la création d'un paquet Debian?

Mes travaux récents impliquent beaucoup de packaging Debian, et j'utilise le Guide des Nouveaux Mainteneurs Debian comme ma principale référence.

Ce que je n'ai pas encore totalement compris, c'est comment le ${shlibs:Depends} est résolu en packages et versions spécifiques. Par "comment", je veux dire les étapes détaillées depuis la variable ${shlibs:Depends} jusqu'à la liste finale des packages dans le champ Depends.

Chapitre 4 dit :

dh_shlibdeps(1) calcule les dépendances des bibliothèques partagées pour les packages binaires. Il génère une liste des exécutables ELF et des bibliothèques partagées qu'il a trouvées pour chaque package binaire. Cette liste est utilisée pour substituer ${shlibs:Depends}.

Je pense que ce qui m'intéresse vraiment, ce sont les étapes détaillées de "génère une liste des exécutables ELF et des bibliothèques partagées qu'il a trouvées pour chaque package binaire", comme quelles sont les sources d'information utilisées.

J'ai également regardé la section "8.6.4. Le système shlibs" dans le Manuel de Politique Debian, cela donne quelques sources d'information mais ne semble toujours pas parler des étapes détaillées non plus.

Je peux certainement explorer le script dh_shlibdeps pour comprendre comment c'est fait, mais j'hésite à le faire car je n'ai pas encore appris le Perl, donc j'aimerais voir s'il existe une autre référence dont je ne suis pas au courant qui a déjà couvert cela. S'il n'y a pas de telle référence, je lirai certainement le code.

Merci !

1voto

user.dz Points 45060

Ce sujet m'est également nouveau, mais voici ce que j'ai pu collecter (peut-être pas exactement trié) et j'ai omis certains fichiers de configuration globaux.

ldd
dpkg -S
deb-shlibs

objdump
deb-symbols
dpkg-gensymbols

debian/shlibs.local
dpkg-shlibdeps
debian/substvars .. shlibs:dependency-field

Assez compliqué avec la résolution des symboles, certains outils sont simplement exécutés sur la bibliothèque de dépendance et non sur le paquet dépendant, ils préparent simplement les infos de la bibliothèque incluses dans le paquet Debian pour le constructeur du paquet Debian. Quoi qu'il en soit, vous pouvez vérifier :

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X