Provided by: dpkg-dev_1.22.0ubuntu1.1_all bug

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épendancechamp-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
           Les informations de bibliothèque partagée générées par l'actuel processus de
           construction qui invoque aussi dpkg-shlibdeps. Elles sont générées par dpkg-
           gensymbols(1) et ne sont utilisées que si la bibliothèque se trouve dans l'arbre de
           construction d'un paquet. Le fichier des symboles qui construit l'arbre s'appuie sur
           les fichiers de symboles d'autres paquets binaires.

       /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).

       Comme garde-fou, un fichier de symboles peut fournir un champ Build-Depends-Package de
       méta-information et dpkg-shlibdeps en extraira la version minimale requise par le paquet
       correspondant depuis ce champ Build-Depends et utilisera cette version si elle est
       supérieure à la version minimale calculée par l'examen des symboles.

   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é -eexécutable.

       -eexé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.

       -lré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.

       -dchamp-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 -dchamp-dépendance concerne tous les exécutables qui suivent l'option,
           jusqu'à la prochaine option -dchamp-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.

       -ppré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.

       -ttype
           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.

       -Lfichier-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.

       -Tfichier-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.

       -xpackage
           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.

       -Sré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.

       -Iré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=valeur
           valeur est un champ de « bit » définissant l'ensemble des avertissements qui peuvent
           être émis par dpkg-shlibdeps (depuis dpkg 1.14.17). Le bit 0 (valeur = 1) active
           l'avertissement « symbole sym utilisé par le binaire trouvé dans aucune des
           bibliothèques ». Le bit 1 (valeur = 2) active l'avertissement « le paquet pourrait
           éviter une dépendance inutile ». Le bit 2 (valeur = 4) active l'avertissement « Le
           binaire ne devrait pas être lié à bibliothèque ». La valeur par défaut est 3 : les
           deux premières mises en garde sont actives par défaut, la dernière ne l'est pas.
           Positionnez la valeur à 7 si vous souhaitez que tous les avertissements soient actifs.

       --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

       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
           -lbibliothè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/).

           Cet échec peut être causé par un shlibs ou un fichier de symboles qui serait mauvais
           ou manquant dans le paquet. Une autre cause serait que la bibliothèque soit construite
           au sein du même paquet source et que les fichiers shlibs n'aient pas encore été créés
           (dans ce cas debian/rules doit être modifié pour créer le shlibs avant l'appel de
           dpkg-shlibdeps). Un mauvais RPATH peut aussi conduire à ce que la bibliothèque soit
           trouvée sous un nom non canonique (comme :
           /usr/lib/openoffice.org/../lib/libssl.so.0.9.8 au lieu de /usr/lib/libssl.so.0.9.8)
           qui n'est associé à aucun paquet, dpkg-shlibdeps essaie de contourner cela en se
           repliant vers un nom canonique (en utilisant realpath(3)), mais cela ne fonctionne pas
           toujours. Il est toujours préférable de bien nettoyer le RPATH du binaire afin
           d'éviter ces problèmes.

           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>.