Provided by:
dpkg-dev_1.16.0.3ubuntu5_all 
NOM
dpkg-shlibdeps - generateur de variables de substitution de dependances
pour bibliotheques partagees
SYNOPSIS
dpkg-shlibdeps [options] ex'ecutable|-eex'ecutable [options]
DESCRIPTION
dpkg-shlibdeps calcule, pour les executables nommes dans ses arguments,
les dependances envers les bibliotheques partagees. Ces dependances
sont ajoutees au fichier debian/substvars sous la forme
shlibs:dependencyfield ou dependencyfield est le nom du champ de
<< dependance >>. Toute autre variable apres shlibs: est supprimee du
fichier.
dpkg-shlibdeps a deux sources possibles pour creeer les informations
concernant les dependances. Soit les fichiers symbols, soit les
fichiers shlibs. Pour chaque fichier binaire qu'il analyse,
dpkg-shlibdeps recherche la liste des bibliotheques partagees qui lui
sont liees. 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 dependances appropriees). Ces deux
fichiers sont senses etre fournis par le paquet de la bibliotheque et
disponibles dans /var/lib/dpkg/info/paquet.symbols ou
/var/lib/dpkg/info/paquet.shlibs. Le nom du paquet est trouve en deux
etapes : en cherchant les fichiers de la bibliotheque sur le systeme,
dans le repertoire que ld.so utiliserait, puis un utilisant dpkg -S
fichier-biblioth`eque pour trouver le paquet qui fournit cette
bibliotheque.
Fichiers symboles
Les fichiers symboles contiennent des informations de dependances plus
fines en fournissant les dependances minimales pour chaque symbole de
la bibliotheque exportee. Le script essaie de trouver un fichier de
symboles associe a un paquet de bibliotheque dans les emplacements
suivants (le premier trouve est utilise) :
debian/*/DEBIAN/symbols
L'information des bibliotheques partagees generee par l'actuel
processus de construction qui invoque aussi dpkg-shlibdeps.
Elles sont generees par dpkg-gensymbols(1) et ne sont utilisees
que si la bibliotheque 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
L'information de dependance des bibliotheques partagees associee
aux systemes. arch est l'architecture du systeme actuel (obtenu
par dpkg-architecture -qDEB_HOST_ARCH).
Output from "dpkg-query --control-path package symbols"
Package-provided shared library dependency information. Unless
overridden by --admindir, those files are located in
/var/lib/dpkg.
Lors de l'analyse des symboles utilises par tous les binaires,
dpkg-shlibdeps retient la (plus grande) version minimale necessaire
pour chaque bibliotheque. A la fin du processus, il est capable
d'ecrire la dependance minimale pour toutes les bibliotheques utilisees
(a condition que l'information des fichiers symbols soit exacte).
Comme garde-fou, un fichier de symboles peut fournir un champ
Build-Depends-Package de meta-information et dpkg-shlibdeps en extraira
la version minimale requise par le paquet correspondant depuis ce champ
Build-Depends et utiliser cette version si elle est superieure a la
version minimale calculee par l'examen des symboles.
Fichiers Shlibs
Les fichiers Shlibs associent directement une bibliotheque a une
dependance (sans regarder les symboles). Il agit donc souvent plus
fortement que ce dont on aurait besoin mais il reste tres sur et facile
a manipuler.
Les dependances d'une bibliotheque sont recherchees a plusieurs
endroits. Le premier fichier d'informations trouve qui concerne la
bibliotheque est utilise :
debian/shlibs.local
Fichier particulier a un paquet remplacant les informations qui
concernent les dependances envers des bibliotheques partagees.
/etc/dpkg/shlibs.override
Fichier systeme remplacant les informations qui concernent les
dependances envers des bibliotheques partagees.
debian/*/DEBIAN/shlibs
Information sur la bibliotheque partagee genere par le processus
actuel de construction qui invoque aussi dpkg-shlibdeps. Il
n'est utilise que si la bibliotheque se trouve dans l'arbre de
construction du paquet. Le fichier shlibs qui construit l'arbre
a priorite sur les fichiers shlibs des autres paquets binaires.
Output from "dpkg-query --control-path package shlibs"
Package-provided shared library dependency information. Unless
overridden by --admindir, those files are located in
/var/lib/dpkg.
/etc/dpkg/shlibs.default
Fichier systeme par defaut concernant les informations de
dependance envers des bibliotheques partagees.
Les dependances trouvees sont ensuite directement utilisees (sauf si
elles sont filtrees parce qu'elles ont ete identifiees comme etant en
double, ou d'un niveau plus faible qu'une autre dependance).
OPTIONS
dpkg-shlibdeps interprete des arguments sans option comme des commandes
executables, comme si on avait simplement donne -eex'ecutable.
-eex'ecutable
Cette option inclut les bonnes dependances envers les
bibliotheques partagees que demande ex'ecutable.
-dchamp-d'ependance
Cette option ajoute les dependances destinees au champ
<< dependance >> du fichier de controle champ-d'ependance. (Les
dependances pour ce champ sont dans la variable
shlibs:champ-d'ependance.)
L'option -dchamp-d'ependance concerne tous les executables qui
suivent l'option, jusqu'a la prochaine option
-dchamp-d'ependance. Par defaut, champ-d'ependance vaut Depends.
Quand, dans plusieurs champs reconnus ayant trait aux
dependances comme les champs Pre-Depends, Depends, Recommends,
Enhances ou Suggests apparait la meme entree (ou bien un
ensemble d'alternatives), dpkg-shlibdeps supprime
automatiquement les dependances dans tous les champs sauf celui
qui represente les dependances les plus importantes.
-ppr'efixe-pour-le-nom-des-variables
Fait commencer les variables de substitution par
pr'efixe-pour-le-nom-des-variables: au lieu de shlibs:. De meme,
toute variable de substitution commencant par
pr'efixe-pour-le-nom-des-variables: (au lieu de shlibs:) est
enlevee du fichier de substitution des variables.
-O Affiche les definitions des variables de substitution sur la
sortie standard, plutot que de les ajouter dans le fichier de
substitution des variables qui est par defaut debian/substvars.
-ttype Preferer les informations sur les dependances des bibliotheques
partagees qui sont etiquetees pour un type de paquet donne. Si
aucune information de type n'est donnee, il n'utilisera pas
d'information. Par defaut, le type de paquet est << deb >>. On
peut creer une etiquette pour ces informations en les prefixant
par le nom du type, un deux-points et une espace.
-Lfichier-local-shlibs
Lire les informations de remplacement concernant les dependances
envers les bibliotheques partagees dans fichier-local-shlibs au
lieu de debian/shlibs.local.
-Tfichier/substvars
Ecrire les variables de substitution dans fichier/substvars ; le
fichier par defaut est debian/substvars.
-v Active le mode verbeux. De nombreux messages sont affiches pour
expliquer ce que dpkg-shlibdeps fait.
-xpackage
Exclut le paquet des dependances generees. Cela evite les
auto-dependances pour les paquets fournissant des executables
ELF (executables ou modules complementaires de bibliotheque) qui
utilisent une bibliotheque incluse dans ce meme paquet. Cette
option peut etre utilisee plusieurs fois pour exclure plusieurs
paquets.
-Spkgbuilddir
Recherche dans pkgbuilddir en premier et essaie de trouver une
bibliotheque. C'est utile lorsque le paquet source construit
plusieurs saveurs de la meme bibliotheque et que vous voulez
vous assurer que vous obtiendrez la dependance d'un paquet
binaire donne. Cette option peut etre utilisee plusieurs fois :
les repertoires seront examines dans le meme ordre avant les
repertoires d'autres paquets binaires.
--ignore-missing-info
Pas d'echec si l'information de dependance ne peut pas etre
trouvee pour une bibliotheque partagee. L'utilisation de cette
option est deconseillee, toutes les bibliotheques devraient
fournir leurs informations de dependance (que ce soit avec les
fichiers shlibs, ou avec les fichiers symboles), meme si elles
ne sont pas encore utilisees par d'autres paquets.
--warnings=valeur
valeur est un champ de << bit >> definissant l'ensemble des
avertissements qui peuvent etre emis par dpkg-shlibdeps. Le bit
0 (valeur = 1) active l'avertissement << symbole sym utilise par
le binaire trouve dans aucune des bibliotheques >>. Le bit 1
(valeur = 2) active l'avertissement << la dependance a la
biblioth`eque pourrait etre evitee >>. Le bit 2 (valeur = 4)
active l'avertissement << Le binaire ne devrait pas etre lie a
la biblioth`eque >>. La valeur par defaut est 3 : les deux
premieres mises en garde sont actives par defaut, la derniere ne
l'est pas. Positionnez la valeur a 7 si vous souhaitez que tous
les avertissements soient actifs.
--admindir=dir
Change l'endroit ou se trouve la base de donnees de dpkg. Par
defaut, c'est /var/lib/dpkg.
-h, --help
Affiche un message d'aide puis quitte.
--version
Affiche le numero de version puis quitte.
AVERTISSEMENTS
Depuis que dpkg-shlibdeps analyse l'ensemble des symboles utilises par
chaque binaire genere par le paquet, il est en mesure d'emettre des
avertissements dans plusieurs cas. Ils vous informent des choses qui
peuvent etre ameliorees dans le paquet. Dans la plupart des cas, ces
ameliorations concernent directement les sources amont. Dans l'ordre
d'importance decroissant, voici les differents avertissements que vous
pouvez rencontrer :
symbole sym utilis'e par binaire trouv'e dans aucune des biblioth`eques.
Le symbole indique n'a pas ete trouve dans les bibliotheques
liees au binaire. Le binaire est probablement plutot une
bibliotheque et elle doit etre liee avec une bibliotheque
supplementaire durant le processus de construction (l'option
-lbiblioth`eque de l'editeur de liens).
binary contient une r'ef'erence non r'esolue au symbole sym: il s'agit
probablement d'un greffon (plugin)
Le symbole indique n'a pas ete trouve dans les bilbiohteques
liees avec le fichier binaire. Le binaire es tres probablement
un greffon (plugin) et le symbole est probablement fourni par le
programme qui charge ce greffon. En theori, un greffon n'a pas
de << SONAME >> mais ce binaire en possede un et n'a pas pu etre
identifie en tant que tel. Cependant, le fait que le binaire
soit stocke dans un repertoire non public est une indication
forte qu'il ne s'agit pas d'une bibliotheque partagee normale.
Si le binaire est vraiment un greffon, vous pouvez ignorer cet
avertissement. Il existe cependant une possibilite qu'il
s'agisse d'un vrai binaire et que les programmes avec lequel il
est lie utilisent un RPATH afin que le chargeur dynamique le
trouve. Dans ce cas, la bibliotheque est incorrecte et doit etre
corrigee.
la d'ependance sur la biblioth`eque pourrait ^etre 'evit'ee si les binaires
inutiles n''etaient pas li'es `a celle-ci (ils n'utilisent aucun de ses
symboles).
Aucun des binaires lies a la biblioth`eque utilise les symboles
qu'elle fournit. En corrigeant tous les binaires, vous eviteriez
la dependance associee a cette bibliotheque (a moins que la meme
dependance soit egalement liee a une autre bibliotheque qui est
elle reellement utilisee).
le binaire ne devrait pas ^etre li'e avec la biblioth`eque (il ne fait
usage d'aucun de ses symboles).
Le binaire est lie a une bibliotheque dont il n'a pas besoin. Ce
n'est pas un probleme mais de petites ameliorations de
performance dans le temps de chargement de celui-ci peuvent etre
obtenues en ne le liant pas a cette bibliotheque. Cet
avertissement verifie la meme information que la precedente mais
elle le fait pour tous les binaires au lieu de ne faire le
controle qu'au niveau global sur tous les binaires analyses.
ERREURS
dpkg-shlibdeps echouera s'il ne peut pas trouver de bibliotheque
publique utilisee par un binaire ou si cette bibliotheque n'a pas
d'informations sur les dependances associees (soit les fichier shlibs,
soit le fichier des symboles). Une bibliotheque publique a un SONAME et
un numero de version (libsomething.so.X). Une bibliotheque privee
(comme un module additionnel) ne devrait pas avoir de SONAME et n'a pas
besoin d'avoir de version.
impossible de trouver la biblioth`eque library-soname demand'ee par le
binaire (son RPATH est 'rpath')
Le binaire utilise une bibliotheque appelee library-soname mais
dpkg-shlibdeps n'a pas ete en mesure de trouver cette
bibliotheque. dpkg-shlibdeps cree une liste de repertoires a
verifier de la maniere suivante : les repertoires enumeres dans
le RPATH du binaire, les repertoires listes dans
/etc/ld.so.conf, les repertoires listes dans la variable
d'environnement LD_LIBRARY_PATH, et les repertoires publics
standard (/lib, /usr/lib, /lib32, /usr/lib32, /lib64,
/usr/lib64). Ensuite, il verifie les repertoires qui sont dans
l'arbre de construction du paquet binaire en cours d'analyse,
dans l'arbre de construction du paquets indique avec l'option de
ligne de commande -S, dans les autres arbres de paquets qui
contiennent des fichiers DEBIAN/shlibs ou un DEBIAN/symbols et
enfin dans le repertoire racine. Si la bibliotheque n'est pas
trouvee dans l'un de ces repertoires, alors ce message d'erreur
est obtenu.
Si la bibliotheque non trouvee est cependant disponible dans le
repertoire prive de ce meme paquet, alors il vous faut ajouter
ce repertoire dans LD_LIBRARY_PATH. S'il est dans un autre
paquet binaire en cours de construction, alors assurez-vous que
le fichier shlibs/symbols de ce paquet est deja cree et que
LD_LIBRARY_PATH contient le repertoire approprie si c'est aussi
un repertoire prive.
aucune information de d'ependance trouv'e pour la biblioth`eque (utilis'ee
par le binaire).
La bibliotheque necessaire au binaire a ete trouvee par
dpkg-shlibdeps dans fichier-biblioth`eque mais dpkg-shlibdeps n'a
pas ete en mesure de trouver d'informations de dependance pour
cette bibliotheque. Pour trouver la dependance, il a essaye de
lier la bibliotheque a un paquet Debian avec l'aide de dpkg -S
fichier-biblioth`eque. Puis, il a verifie les shlibs
correspondants et les fichiers symboles de /var/lib/dpkg/info/
et enfin les differents arbres des paquets construits
(debian/*/DEBIAN/).
Cet echec peut etre cause par un shlibs ou un fichier de
symboles qui serait mauvais ou manquant dans le paquet. Une
autre cause serait que la bibliotheque soit construite au sein
du meme paquet source et que les fichiers shlibs n'aient pas
encore ete crees (dans ce cas debian/rules doit etre modifie
pour creer le shlibs avant l'appel de dpkg-shlibdeps). Un
mauvais RPATH peut aussi conduire a ce que la bibliotheque soit
trouvee 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 associe a aucun paquet,
dpkg-shlibdeps essaie de travailler sur ce nom non-canonique (en
utilisant realpath(3)), mais cela ne fonctionne pas toujours. Il
est toujours preferable de bien nettoyer le RPATH du binaire
afin d'eviter ces problemes.
L'appel de dpkg-shlibdeps en mode verbeux (-v) fournira beaucoup
plus informations sur l'endroit ou il a essaye de trouver
l'information sur les dependances. Ceci peut etre utile si vous
ne comprenez pas pourquoi vous obtenez cette erreur.
VOIR AUSSI
deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).
AUTEURS
Copyright (C) 1995-1996 Ian Jackson
Copyright (C) 2000 Wichert Akkerman
Copyright (C) 2006 Frank Lichtenheld
Copyright (C) 2007-2008 Raphael Hertzog
Ce programme est un logiciel libre ; voyez la << GNU General Public
Licence >> version 2 ou superieure pour le copyright. Il n'y a PAS de
garantie.
TRADUCTION
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006.
Nicolas Francois, 2006. Veuillez signaler toute erreur a
<debian-l10n-french@lists.debian.org>.