Provided by: dpkg-dev_1.19.7ubuntu3.2_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ée  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 (obtenu 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 :  Utilisez  cette  option plutôt que le réglage de LD_LIBRARY_PATH, parce que cette variable
              d'environnement est utilisée pour contrôler l'éditeur de liens d'exécution  et  se  servir  d'elle
              pour  définir  les  chemins  des  bibliothèques  partagées  au moment de la construction peut être
              problématique, par exemple, lors d'une compilation croisée.

       -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
              Affiche un message d'aide puis quitte.

       --version
              Affiche le numéro de version puis quitte.

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 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-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.19.7                                             2022-05-25                                  dpkg-shlibdeps(1)