Man page - dpkg-shlibdeps(1)

Packages contains this manual

Available languages:

en fr pt nl sv de

Manual

dpkg-shlibdeps

NOM
SYNOPSIS
DESCRIPTION
Fichiers symboles
Fichiers Shlibs
OPTIONS
ENVIRONNEMENT
DIAGNOSTICS
Avertissements
Erreurs
VOIR AUSSI
TRADUCTION

NOM

dpkg-shlibdeps - Générateur de variables de substitution de dépendances pour bibliothÚques partagées

SYNOPSIS

dpkg-shlibdeps [ option ...] [ -e ] exécutable [ option ...]

DESCRIPTION

dpkg-shlibdeps calcule, pour les exĂ©cutables indiquĂ©s dans ses paramĂštres, les dĂ©pendances envers les bibliothĂšques partagĂ©es. Ces dĂ©pendances sont ajoutĂ©es au fichier de variables de substitution debian/substvars sous la forme shlibs: champ-dĂ©pendance oĂč champ-dĂ©pendance est le nom du champ de dĂ©pendance. Toute autre variable aprĂšs shlibs: est supprimĂ©e du fichier.

dpkg-shlibdeps a deux sources possibles pour crĂ©er les informations concernant les dĂ©pendances, soit les fichiers symbols , soit les fichiers shlibs . Pour chaque fichier binaire qu’il analyse, dpkg-shlibdeps recherche la liste des bibliothĂšques partagĂ©es qui lui sont liĂ©es. Puis, pour chacune d’elles il analyse soit le fichier symbols , soit le fichier shlibs (si le premier n’existe pas ou si debian/shlibs.local contient les dĂ©pendances appropriĂ©es). Ces deux fichiers sont censĂ©s ĂȘtre fournis par le paquet de la bibliothĂšque et disponibles dans /var/lib/dpkg/info/ paquet . symbols ou /var/lib/dpkg/info/ paquet . shlibs . Le nom du paquet est trouvĂ© en deux Ă©tapes : en cherchant le fichier de la bibliothĂšque sur le systĂšme, dans le rĂ©pertoire que ld.so utiliserait, puis en utilisant dpkg -S fichier-bibliothĂšque pour trouver le paquet qui fournit cette bibliothĂšque.

Fichiers symboles

Les fichiers symboles contiennent des informations de dépendances plus fines en fournissant les dépendances minimales pour chaque symbole de la bibliothÚque exportée. Le script essaie de trouver un fichier de symboles associé à un paquet de bibliothÚque dans les emplacements suivants (le premier trouvé est utilisé) :
debian/*/DEBIAN/symbols

Shared library information generated by the current build process that also invoked dpkg-shlibdeps . They are generated by dpkg-gensymbols (1). They are only used if the library is found in a package’s build tree. The symbols file in that build tree takes precedence over symbols files from other binary packages.

/etc/dpkg/symbols/ paquet .symbols. architecture
/etc/dpkg/symbols/ paquet .symbols

Les informations de dĂ©pendance de bibliothĂšque partagĂ©e principales par systĂšme. arch est l’architecture du systĂšme actuel (obtenue par dpkg-architecture -qDEB_HOST_ARCH ).

Affichage de “ dpkg-query --control-path paquet symbols”

Les informations de dépendance de bibliothÚque partagée fournies par le paquet. Sauf indication contraire par le biais de --admindir , ces fichiers sont par défaut dans /var/lib/dpkg.

Lors de l’analyse des symboles utilisĂ©s par tous les binaires, dpkg-shlibdeps retient la (plus grande) version minimale nĂ©cessaire pour chaque bibliothĂšque. À la fin du processus, il est capable d’écrire la dĂ©pendance minimale pour toutes les bibliothĂšques utilisĂ©es (Ă  condition que l’information des fichiers symbols soit exacte).

As a safe-guard measure, a symbols file can provide a Build-Depends-Package or Build-Depends-Packages meta-information field and dpkg-shlibdeps will extract the minimal version required by the corresponding package in the Build-Depends field and use this version if it’s higher than the minimal version computed by scanning symbols.

Fichiers Shlibs

Les fichiers Shlibs associent directement une bibliothĂšque Ă  une dĂ©pendance (sans regarder les symboles). C’est donc souvent plus puissant que les besoins rĂ©els mais cela reste trĂšs sĂ»r et facile Ă  manipuler.

Les dĂ©pendances d’une bibliothĂšque sont recherchĂ©es Ă  plusieurs endroits. Le premier fichier d’informations trouvĂ© qui concerne la bibliothĂšque est utilisé :
debian/shlibs.local

Fichier particulier à un paquet remplaçant les informations qui concernent les dépendances envers des bibliothÚques partagées.

/etc/dpkg/shlibs.override

Fichier systÚme remplaçant les informations qui concernent les dépendances envers des bibliothÚques partagées.

debian/*/DEBIAN/shlibs

Information sur la bibliothĂšque partagĂ©e gĂ©nĂ©rĂ©e par le processus actuel de construction qui invoque aussi dpkg-shlibdeps . Il n’est utilisĂ© que si la bibliothĂšque se trouve dans l’arbre de construction du paquet. Le fichier shlibs qui construit l’arbre a prioritĂ© sur les fichiers shlibs des autres paquets binaires.

Affichage de « dpkg-query --control-path paquet shlibs »

Les informations de dépendance de bibliothÚque partagée fournies par le paquet. Sauf indication contraire par le biais de --admindir , ces fichiers sont par défaut dans /var/lib/dpkg.

/etc/dpkg/shlibs.default

Fichier systÚme par défaut concernant les informations de dépendance envers des bibliothÚques partagées.

Les dĂ©pendances trouvĂ©es sont ensuite directement utilisĂ©es (sauf si elles sont filtrĂ©es parce qu’elles ont Ă©tĂ© identifiĂ©es comme Ă©tant en double, ou d’un niveau plus faible qu’une autre dĂ©pendance).

OPTIONS

dpkg-shlibdeps interprÚte des arguments sans option comme des commandes exécutables, comme si on avait simplement donné -e exécutable .
-e
exécutable

Cette option inclut les bonnes dĂ©pendances envers les bibliothĂšques partagĂ©es que demande exĂ©cutable . Cette option peut ĂȘtre utilisĂ©e plusieurs fois.

-l répertoire

Ajoute rĂ©pertoire au dĂ©but de la liste des rĂ©pertoires oĂč chercher des bibliothĂšques partagĂ©es privĂ©es (depuis dpkg 1.17.0). Cette option peut ĂȘtre utilisĂ©e plusieurs fois.

Note : Use this option instead of setting LD_LIBRARY_PATH , as that environment variable is used to control the run-time linker and abusing it to set the shared library paths at build-time can be problematic when cross-compiling for example.

-d champ-dépendance

Cette option ajoute les dépendances destinées au champ « dépendance » du fichier de contrÎle champ-dépendance . (Les dépendances pour ce champ sont dans la variable shlibs: champ-dépendance .)

L’option -d champ-dĂ©pendance concerne tous les exĂ©cutables qui suivent l’option, jusqu’à la prochaine option -d champ-dĂ©pendance . Par dĂ©faut, champ-dĂ©pendance vaut Depends .

Quand, dans plusieurs champs reconnus ayant trait aux dĂ©pendances comme les champs Pre-Depends , Depends , Recommends , Enhances ou Suggests apparaĂźt la mĂȘme entrĂ©e (ou bien un ensemble d’alternatives), dpkg-shlibdeps supprime automatiquement les dĂ©pendances dans tous les champs sauf celui qui reprĂ©sente les dĂ©pendances les plus importantes.

--package= package

Define the package name.

When specified, the package name will be used to change defaults based on the binary package metadata in debian/control .

If the package is Essential: yes , then the default dependency field is Pre-Depends , otherwise Depends . The default package type is set from the Package-Type field. The package is added to the set of packages excluded by -x .

Option supported since dpkg 1.22.7.

-p préfixe-pour-le-nom-des-variables

Fait commencer les variables de substitution par prĂ©fixe-pour-le-nom-des-variables : au lieu de shlibs: . De mĂȘme, toute variable de substitution commençant par prĂ©fixe-pour-le-nom-des-variables : (au lieu de shlibs: ) est enlevĂ©e du fichier de substitution des variables.

-O [ nom-de-fichier ]

Affiche les définitions des variables de substitution sur la sortie standard (ou nom-de-fichier si spécifié, depuis dpkg 1.17.2), plutÎt que de les ajouter dans le fichier de substitution des variables qui est par défaut debian/substvars .

-t type

PrĂ©fĂ©rer les informations sur les dĂ©pendances des bibliothĂšques partagĂ©es qui sont Ă©tiquetĂ©es pour un type de paquet donnĂ©. Si aucune information de type n’est donnĂ©e, il n’utilisera pas d’information. Par dĂ©faut, le type de paquet est deb . On peut crĂ©er une Ă©tiquette pour ces informations en les prĂ©fixant par le nom du type, un deux-points et une espace.

-L fichier-local-shlibs

Lire les informations de remplacement concernant les dépendances envers les bibliothÚques partagées dans fichier-local-shlibs au lieu de debian/shlibs.local .

-T fichier-substvars

Écrire les variables de substitution dans fichier-substvars ; le fichier par dĂ©faut est debian/substvars .

-v

Active le mode bavard (depuis dpkg 1.14.8). De nombreux messages sont affichés pour expliquer ce que dpkg-shlibdeps fait.

-x package

Exclut le paquet des dĂ©pendances gĂ©nĂ©rĂ©es (depuis dpkg 1.14.8). Cela Ă©vite les auto-dĂ©pendances pour les paquets fournissant des exĂ©cutables ELF (exĂ©cutables ou modules complĂ©mentaires de bibliothĂšque) qui utilisent une bibliothĂšque incluse dans ce mĂȘme paquet. Cette option peut ĂȘtre utilisĂ©e plusieurs fois pour exclure plusieurs paquets.

-S répertoire-construction-paquet

Recherche dans rĂ©pertoire-construction-paquet en premier et essaie de trouver une bibliothĂšque (depuis dpkg 1.14.15). C’est utile lorsque le paquet source construit plusieurs saveurs de la mĂȘme bibliothĂšque et que vous voulez vous assurer que vous obtiendrez la dĂ©pendance d’un paquet binaire donnĂ©. Cette option peut ĂȘtre utilisĂ©e plusieurs fois : les rĂ©pertoires seront examinĂ©s dans le mĂȘme ordre avant les rĂ©pertoires d’autres paquets binaires.

-I répertoire-construction-paquet

Ignore rĂ©pertoire-construction-paquet lors de la recherche des fichiers shlibs, de symboles et des bibliothĂšques partagĂ©es (depuis dpkg 1.18.5). Cette option peut ĂȘtre utilisĂ©e plusieurs fois.

--ignore-missing-info

Pas d’échec si l’information de dĂ©pendance ne peut pas ĂȘtre trouvĂ©e pour une bibliothĂšque partagĂ©e (depuis dpkg 1.14.8). L’utilisation de cette option est dĂ©conseillĂ©e, toutes les bibliothĂšques devraient fournir leurs informations de dĂ©pendance (que ce soit avec les fichiers shlibs, ou avec les fichiers symboles), mĂȘme si elles ne sont pas encore utilisĂ©es par d’autres paquets.

--warnings= [ value | string [,...]]

Select the set of warnings that can be emitted by dpkg-shlibdeps (since dpkg 1.14.17).

The warnings can be selected from a comma-separated list of symbolic names (since dpkg 1.22.12), or from a value denoting a bit field for these warnings.
symbol-not-found (bit 0, value 1)

Selects the warning “symbol sym used by binary found in none of the libraries”.

Enabled by default.

avoidable-dependency (bit 1, value 2)

Selects the warning “package could avoid a useless dependency”.

Enabled by default.

useless-linkage (bit 2, value 4)

Select the warning “ binary should not be linked against library ”.

--admindir = répertoire

Changer l’endroit oĂč se trouve la base de donnĂ©es de dpkg (depuis dpkg 1.14.0). Par dĂ©faut, c’est /var/lib/dpkg .

-? , --help

Afficher un message d’aide puis quitter.

--version

Afficher le numéro de version puis quitter.

ENVIRONNEMENT

DEB_HOST_ARCH

Sets the host architecture. This affects the objects and symbols files searched for and their default search pathnames.

DPKG_COLORS

Définit le mode de couleur (depuis dpkg 1.18.5). Les valeurs actuellement acceptées sont auto (par défaut), always et never .

DPKG_NLS

Si cette variable est dĂ©finie, elle sera utilisĂ©e pour dĂ©cider l’activation de la prise en charge des langues (NLS – Native Language Support), connu aussi comme la gestion de l’internationalisation (ou i18n) (depuis dpkg 1.19.0). Les valeurs permises sont : 0 et 1 (par dĂ©faut).

DIAGNOSTICS

Avertissements

Depuis que dpkg-shlibdeps analyse l’ensemble des symboles utilisĂ©s par chaque binaire gĂ©nĂ©rĂ© par le paquet, il est en mesure d’émettre des avertissements dans plusieurs cas. Ils vous informent des choses qui peuvent ĂȘtre amĂ©liorĂ©es dans le paquet. Dans la plupart des cas, ces amĂ©liorations concernent directement les sources amont. Dans l’ordre d’importance dĂ©croissant, voici les diffĂ©rents avertissements que vous pouvez rencontrer :
symbole
sym utilisé par binaire trouvé dans aucune des bibliothÚques.

Le symbole indiquĂ© n’a pas Ă©tĂ© trouvĂ© dans les bibliothĂšques liĂ©es au binaire. Le binaire est probablement plutĂŽt une bibliothĂšque et il doit ĂȘtre liĂ© avec une bibliothĂšque supplĂ©mentaire durant le processus de construction (l’option -l bibliothĂšque de l’éditeur de liens).

binary contient une rĂ©fĂ©rence non rĂ©solue au symbole sym : il s’agit
probablement d’un greffon (plugin)

Le symbole indiquĂ© n’a pas Ă©tĂ© trouvĂ© dans les bibliothĂšques liĂ©es avec le fichier binaire. Le binaire est trĂšs probablement un greffon (plugin) et le symbole est probablement fourni par le programme qui charge ce greffon. En thĂ©orie, un greffon n’a pas de « SONAME » mais ce binaire en possĂšde un et n’a pas pu ĂȘtre identifiĂ© en tant que tel. Cependant, le fait que le binaire soit stockĂ© dans un rĂ©pertoire non public est une indication forte qu’il ne s’agit pas d’une bibliothĂšque partagĂ©e normale. Si le binaire est vraiment un greffon, vous pouvez ignorer cet avertissement. Il existe cependant une possibilitĂ© qu’il s’agisse d’un vrai binaire et que les programmes avec lequel il est liĂ© utilisent un RPATH afin que le chargeur dynamique le trouve. Dans ce cas, la bibliothĂšque est incorrecte et doit ĂȘtre corrigĂ©e.

paquet pourrait Ă©viter une dĂ©pendance inutile si le binaire n’était pas
lié avec
bibliothùque (il ne fait usage d’aucun de ses symboles)

Aucun des binaires liĂ©s Ă  la bibliothĂšque n’utilise les symboles qu’elle fournit. En corrigeant tous les binaires, vous Ă©viteriez la dĂ©pendance associĂ©e Ă  cette bibliothĂšque (Ă  moins que la mĂȘme dĂ©pendance soit Ă©galement liĂ©e Ă  une autre bibliothĂšque qui est elle rĂ©ellement utilisĂ©e).

paquet pourrait Ă©viter une dĂ©pendance inutile si les binaires n’étaient
pas liés avec
bibliothùque (ils ne font usage d’aucun de ses symboles)

Identique Ă  l’avertissement prĂ©cĂ©dent, pour des binaires multiples.

le binaire ne devrait pas ĂȘtre liĂ© avec la bibliothĂšque (il ne fait
usage d’aucun de ses symboles)

Le binaire est liĂ© Ă  une bibliothĂšque dont il n’a pas besoin. Ce n’est pas un problĂšme, mais de petites amĂ©liorations de performance dans le temps de chargement de celui-ci peuvent ĂȘtre obtenues en ne le liant pas Ă  cette bibliothĂšque. Cet avertissement vĂ©rifie la mĂȘme information que la prĂ©cĂ©dente mais elle le fait pour tous les binaires au lieu de ne faire le contrĂŽle qu’au niveau global sur tous les binaires analysĂ©s.

Erreurs

dpkg-shlibdeps Ă©chouera s’il ne peut pas trouver de bibliothĂšque publique utilisĂ©e par un binaire ou si cette bibliothĂšque n’a pas d’informations sur les dĂ©pendances associĂ©es (soit le fichier shlibs, soit le fichier des symboles). Une bibliothĂšque publique a un SONAME et un numĂ©ro de version (libsomething.so. X ). Une bibliothĂšque privĂ©e (comme un module additionnel) ne devrait pas avoir de SONAME et n’a pas besoin d’avoir de version.
impossible de trouver la bibliothĂšque
library-soname demandée par le
binaire
(son RPATH est « rpath »)

Le binaire utilise une bibliothĂšque appelĂ©e library-soname mais dpkg-shlibdeps n’a pas Ă©tĂ© en mesure de trouver cette bibliothĂšque. dpkg-shlibdeps crĂ©e une liste de rĂ©pertoires Ă  vĂ©rifier de la maniĂšre suivante : les rĂ©pertoires Ă©numĂ©rĂ©s dans le RPATH du binaire, les rĂ©pertoires ajoutĂ©s par l’option -l , les rĂ©pertoires listĂ©s dans la variable d’environnement LD_LIBRARY_PATH , les rĂ©pertoires croisĂ©s multi-architerctures (par exemple, /lib/arm64-linux-gnu, /usr/lib/arm64-linux-gnu), les rĂ©pertoires publics standard (/lib, /usr/lib), les rĂ©pertoires listĂ©s dans /etc/ld.so.conf et les rĂ©pertoires obsolĂštes multilib (/lib32, /usr/lib32, /lib64, /usr/lib64). Ensuite, il vĂ©rifie les rĂ©pertoires qui sont dans l’arbre de construction du paquet binaire en cours d’analyse, dans l’arbre de construction du paquet indiquĂ© avec l’option de ligne de commande -S , dans les autres arbres de paquets qui contiennent un fichier DEBIAN/shlibs ou DEBIAN/symbols et enfin dans le rĂ©pertoire racine. Si la bibliothĂšque n’est pas trouvĂ©e dans l’un de ces rĂ©pertoires, alors ce message d’erreur est obtenu.

Si la bibliothĂšque non trouvĂ©e est cependant disponible dans le rĂ©pertoire privĂ© de ce mĂȘme paquet, alors il vous faut ajouter ce rĂ©pertoire avec -l . S’il est dans un autre paquet binaire en cours de construction, alors assurez-vous que le fichier shlibs/symbols de ce paquet a dĂ©jĂ  créé et que -l contient le rĂ©pertoire appropriĂ© si c’est aussi un rĂ©pertoire privĂ©.

aucune information de dépendance trouvée pour la bibliothÚque (utilisée
par le
binaire ).

La bibliothĂšque nĂ©cessaire au binaire a Ă©tĂ© trouvĂ©e par dpkg-shlibdeps dans fichier-bibliothĂšque mais dpkg-shlibdeps n’a pas Ă©tĂ© en mesure de trouver d’informations de dĂ©pendance pour cette bibliothĂšque. Pour trouver la dĂ©pendance, il a essayĂ© de lier la bibliothĂšque Ă  un paquet Debian avec l’aide de dpkg -S fichier-bibliothĂšque . Puis, il a vĂ©rifiĂ© les shlibs correspondants et les fichiers symboles de /var/lib/dpkg/info/ et enfin les diffĂ©rents arbres des paquets construits (debian/*/DEBIAN/).

This failure can be caused by a bad or missing shlibs or symbols file in the package of the library. It might also happen if the library is built within the same source package and if the shlibs files has not yet been created (in which case you must fix debian/rules to create the shlibs before calling dpkg-shlibdeps ). Bad RPATH can also lead to the library being found under a non-canonical name (example: /usr/lib/openoffice.org/../lib/libssl.so.0.9.8 instead of /usr/lib/libssl.so.0.9.8) that’s not associated to any package, dpkg-shlibdeps tries to work around this by trying to fallback on a canonical name (using realpath (3)) but it might not always work. It’s always best to clean up the RPATH of the binary to avoid problems.

L’appel de dpkg-shlibdeps en mode bavard ( -v ) fournira beaucoup plus d’informations sur l’endroit oĂč il a essayĂ© de trouver l’information sur les dĂ©pendances. Cela peut ĂȘtre utile si vous ne comprenez pas pourquoi vous obtenez cette erreur.

VOIR AUSSI

deb-substvars (5), deb-shlibs (5), deb-symbols (5), dpkg-gensymbols (1).

TRADUCTION

Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.