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