Provided by: dpkg-dev_1.22.11ubuntu1_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
           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é -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.

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

       -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

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

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

1.22.11                                            2024-08-05                                  dpkg-shlibdeps(1)