NOM
dpkg-shlibdeps - gnrateur de variables de substitution de dpendances
pour bibliothques partages
SYNOPSIS
dpkg-shlibdeps [options] excutable|-eexcutable [options]
dpkg-shlibdeps calcule, pour les excutables nomms dans ses arguments,
les dpendances envers les bibliothques partages. Ces dpendances sont
ajoutes au fichier debian/substvars sous la forme
shlibs:dependencyfield o dependencyfield est le nom du champ de
dpendance . Toute autre variable aprs shlibs: est supprime du fichier.
dpkg-shlibdeps a deux sources possibles pour crer les informations
concernant les dpendances. Soit les fichiers symbols, soit les fichiers
shlibs. Pour chaque fichier binaire qu'il analyse, dpkg-shlibdeps
recherche la liste des bibliothques partages qui lui sont lies. 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 dpendances appropries). Ces deux fichiers sont senss tre
fournis par le paquet de la bibliothque 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 les fichiers de
la bibliothque sur le systme, dans le rpertoire que ld.so utiliserait,
puis un utilisant dpkg -S fichier-bibliothque pour trouver le paquet
qui fournit cette bibliothque.
Fichiers symboles
Les fichiers symboles contiennent des informations de dpendances plus
fines en fournissant les dpendances minimales pour chaque symbole de la
bibliothque exporte. Le script essaie de trouver un fichier de symboles
associ un paquet de bibliothque dans les emplacements suivants (le
premier trouv est utilis) :
debian/*/DEBIAN/symbols
L'information des bibliothques partages gnre par l'actuel
processus de construction qui invoque aussi dpkg-shlibdeps.
Elles sont gnres par dpkg-gensymbols(1) et ne sont utilises que
si la bibliothque 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 dpendance des bibliothques partages associe aux
systmes. arch est l'architecture du systme actuel (obtenu par
dpkg-architecture -qDEB_HOST_ARCH).
admindir/info/paquet.symbols
Paquet fournissant des informations concernant les dpendances
envers des bibliothques partages. Sauf indication contraire,
admindir est par dfaut /var/lib/dpkg .
Lors de l'analyse des symboles utiliss par tous les binaires,
dpkg-shlibdeps retient la (plus grande) version minimale ncessaire pour
chaque bibliothque. la fin du processus, il est capable d'crire la
dpendance minimale pour toutes les bibliothques utilises ( condition
que l'information des fichiers symbols soit exacte).
Comme garde-fou, un fichier de symboles peut fournir un champ
Build-Depends-Package de mta-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 suprieure la
version minimale calcule par l'examen des symboles.
Fichiers Shlibs
Les fichiers Shlibs associent directement une bibliothque une
dpendance (sans regarder les symboles). Il agit donc souvent plus
fortement que ce dont on aurait besoin mais il reste trs sr et facile
manipuler.
Les dpendances d'une bibliothque sont recherches plusieurs endroits.
Le premier fichier d'informations trouv qui concerne la bibliothque est
utilis :
debian/shlibs.local
Fichier particulier un paquet remplaant les informations qui
concernent les dpendances envers des bibliothques partages.
/etc/dpkg/shlibs.override
Fichier systme remplaant les informations qui concernent les
dpendances envers des bibliothques partages.
debian/*/DEBIAN/shlibs
Information sur la bibliothque partage gnr par le processus
actuel de construction qui invoque aussi dpkg-shlibdeps. Il
n'est utilis que si la bibliothque 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.
admindir/info/paquet.shlibs
Paquet fournissant des informations concernant les dpendances
envers des bibliothques partages. Sauf indication contraire,
admindir est par dfaut /var/lib/dpkg .
/etc/dpkg/shlibs.default
Fichier systme par dfaut concernant les informations de
dpendance envers des bibliothques partages.
Les dpendances trouves sont ensuite directement utilises (sauf si elles
sont filtres parce qu'elles ont t identifies comme tant en double, ou
d'un niveau plus faible qu'une autre dpendance).
OPTIONS
dpkg-shlibdeps interprte des arguments sans option comme des commandes
excutables, comme si on avait simplement donn -eexcutable.
-eexcutable
Cette option inclut les bonnes dpendances envers les
bibliothques partages que demande excutable.
-dchamp-dpendance
Cette option ajoute les dpendances destines au champ dpendance
du fichier de contrle champ-dpendance. (Les dpendances pour ce
champ sont dans la variable shlibs:champ-dpendance.)
L'option -dchamp-dpendance concerne tous les excutables qui
suivent l'option, jusqu' la prochaine option -dchamp-dpendance.
Par dfaut, champ-dpendance vaut Depends.
Quand, dans plusieurs champs reconnus ayant trait aux dpendances
comme les champs Pre-Depends, Depends, Recommends, Enhances ou
Suggests apparat la mme entre (ou bien un ensemble
d'alternatives), dpkg-shlibdeps supprime automatiquement les
dpendances dans tous les champs sauf celui qui reprsente les
dpendances les plus importantes.
-pprfixe-pour-le-nom-des-variables
Fait commencer les variables de substitution par
prfixe-pour-le-nom-des-variables: au lieu de shlibs:. De mme,
toute variable de substitution commenant par
prfixe-pour-le-nom-des-variables: (au lieu de shlibs:) est
enleve du fichier de substitution des variables.
-O Affiche les dfinitions des variables de substitution sur la
sortie standard, plutt que de les ajouter dans le fichier de
substitution des variables qui est par dfaut debian/substvars.
-ttype Prfrer les informations sur les dpendances des bibliothques
partages qui sont tiquetes pour un type de paquet donn. Si
aucune information de type n'est donne, il n'utilisera pas
d'information. Par dfaut, le type de paquet est deb . On peut
crer une tiquette pour ces informations en les prfixant par le
nom du type, un deux-points et une espace.
-Lfichier-local-shlibs
Lire les informations de remplacement concernant les dpendances
envers les bibliothques partages dans fichier-local-shlibs au
lieu de debian/shlibs.local.
-Tfichier/substvars
crire les variables de substitution dans fichier/substvars ; le
fichier par dfaut est debian/substvars.
-v Active le mode verbeux. De nombreux messages sont affichs pour
expliquer ce que dpkg-shlibdeps fait.
-xpackage
Exclut le paquet des dpendances gnres. Cela vite les
auto-dpendances pour les paquets fournissant des excutables ELF
(excutables ou modules complmentaires de bibliothque) qui
utilisent une bibliothque incluse dans ce mme paquet. Cette
option peut tre utilise plusieurs fois pour exclure plusieurs
paquets.
-Spkgbuilddir
Recherche dans pkgbuilddir en premier et essaie de trouver une
bibliothque. C'est utile lorsque le paquet source construit
plusieurs saveurs de la mme bibliothque et que vous voulez vous
assurer que vous obtiendrez la dpendance d'un paquet binaire
donn. Cette option peut tre utilise plusieurs fois : les
rpertoires seront examins dans le mme ordre avant les rpertoires
d'autres paquets binaires.
--ignore-missing-info
Pas d'chec si l'information de dpendance ne peut pas tre trouve
pour une bibliothque partage. L'utilisation de cette option est
dconseille, toutes les bibliothques devraient fournir leurs
informations de dpendance (que ce soit avec les fichiers shlibs,
ou avec les fichiers symboles), mme si elles ne sont pas encore
utilises par d'autres paquets.
--warnings=valeur
valeur est un champ de bit dfinissant l'ensemble des
avertissements qui peuvent tre mis par dpkg-shlibdeps. Le bit 0
(valeur = 1) active l'avertissement symbole sym utilis par le
binaire trouv dans aucune des bibliothques . Le bit 1 (valeur =
2) active l'avertissement la dpendance la bibliothque pourrait
tre vite . Le bit 2 (valeur = 4) active l'avertissement Le
binaire ne devrait pas tre li
la bibliothque . La valeur par dfaut est 3 : les deux premires
mises en garde sont actives par dfaut, la dernire ne l'est pas.
Positionnez la valeur 7 si vous souhaitez que tous les
avertissements soient actifs.
--admindir=dir
Change l'endroit o se trouve la base de donnes de dpkg. Par
dfaut, c'est /var/lib/dpkg.
-h, --help
Affiche un message d'aide puis quitte.
--version
Affiche le numro de version puis quitte.
AVERTISSEMENTS
Depuis que dpkg-shlibdeps analyse l'ensemble des symboles utiliss par
chaque binaire gnr par le paquet, il est en mesure d'mettre des
avertissements dans plusieurs cas. Ils vous informent des choses qui
peuvent tre amliores dans le paquet. Dans la plupart des cas, ces
amliorations concernent directement les sources amont. Dans l'ordre
d'importance dcroissant, voici les diffrents avertissements que vous
pouvez rencontrer :
symbole sym utilis par binaire trouv dans aucune des bibliothques.
Le symbole indiqu n'a pas t trouv dans les bibliothques lies au
binaire. Le binaire est probablement plutt une bibliothque et
elle doit tre lie avec une bibliothque supplmentaire durant le
processus de construction (l'option -lbibliothque de l'diteur de
liens).
binary contient une rfrence non rsolue au symbole sym: il s'agit
probablement d'un greffon (plugin)
Le symbole indiqu n'a pas t trouv dans les bilbiohtques lies
avec le fichier binaire. Le binaire es trs probablement un
greffon (plugin) et le symbole est probablement fourni par le
programme qui charge ce greffon. En thori, un greffon n'a pas de
SONAME mais ce binaire en possde un et n'a pas pu tre identifi
en tant que tel. Cependant, le fait que le binaire soit stock
dans un rpertoire non public est une indication forte qu'il ne
s'agit pas d'une bibliothque partage 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
bibliothque est incorrecte et doit tre corrige.
la dpendance sur la bibliothque pourrait tre vite si les binaires
inutiles n'taient pas lis celle-ci (ils n'utilisent aucun de ses
symboles).
Aucun des binaires lis la bibliothque utilise les symboles
qu'elle fournit. En corrigeant tous les binaires, vous viteriez
la dpendance associe cette bibliothque ( moins que la mme
dpendance soit galement lie une autre bibliothque qui est elle
rellement utilise).
le binaire ne devrait pas tre li avec la bibliothque (il ne fait usage
d'aucun de ses symboles).
Le binaire est li une bibliothque dont il n'a pas besoin. Ce
n'est pas un problme mais de petites amliorations de performance
dans le temps de chargement de celui-ci peuvent tre obtenues en
ne le liant pas cette bibliothque. Cet avertissement vrifie la
mme information que la prcdente mais elle le fait pour tous les
binaires au lieu de ne faire le contrle qu'au niveau global sur
tous les binaires analyss.
ERREURS
dpkg-shlibdeps chouera s'il ne peut pas trouver de bibliothque publique
utilise par un binaire ou si cette bibliothque n'a pas d'informations
sur les dpendances associes (soit les fichier shlibs, soit le fichier
des symboles). Une bibliothque publique a un SONAME et un numro de
version (libsomething.so.X). Une bibliothque prive (comme un module
additionnel) ne devrait pas avoir de SONAME et n'a pas besoin d'avoir
de version.
impossible de trouver la bibliothque library-soname demande par le
binaire (son RPATH est 'rpath')
Le binaire utilise une bibliothque appele library-soname mais
dpkg-shlibdeps n'a pas t en mesure de trouver cette bibliothque.
dpkg-shlibdeps cre une liste de rpertoires vrifier de la manire
suivante : les rpertoires numrs dans le RPATH du binaire, les
rpertoires lists dans /etc/ld.so.conf, les rpertoires lists dans
la variable d'environnement LD_LIBRARY_PATH, et les rpertoires
publics standard (/lib, /usr/lib, /lib32, /usr/lib32, /lib64,
/usr/lib64). Ensuite, il vrifie les rpertoires qui sont dans
l'arbre de construction du paquet binaire en cours d'analyse,
dans l'arbre de construction du paquets indiqu 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 rpertoire racine. Si la bibliothque n'est pas
trouve dans l'un de ces rpertoires, alors ce message d'erreur
est obtenu.
Si la bibliothque non trouve est cependant disponible dans le
rpertoire priv de ce mme paquet, alors il vous faut ajouter ce
rpertoire 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 dj cr et que
LD_LIBRARY_PATH contient le rpertoire appropri si c'est aussi un
rpertoire priv.
aucune information de dpendance trouv pour la bibliothque (utilise par
le binaire).
La bibliothque ncessaire au binaire a t trouve par
dpkg-shlibdeps dans fichier-bibliothque mais dpkg-shlibdeps n'a
pas t en mesure de trouver d'informations de dpendance pour
cette bibliothque. Pour trouver la dpendance, il a essay de lier
la bibliothque un paquet Debian avec l'aide de dpkg -S
fichier-bibliothque. Puis, il a vrifi les shlibs correspondants
et les fichiers symboles de /var/lib/dpkg/info/ et enfin les
diffrents 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 bibliothque soit construite au sein du mme paquet
source et que les fichiers shlibs n'aient pas encore t crs (dans
ce cas debian/rules doit tre modifi pour crer le shlibs avant
l'appel de dpkg-shlibdeps). Un mauvais RPATH peut aussi conduire
ce que la bibliothque soit trouve 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 travailler sur ce nom non-canonique (en
utilisant realpath(3)), mais cela ne fonctionne pas toujours. Il
est toujours prfrable de bien nettoyer le RPATH du binaire afin
d'viter ces problmes.
L'appel de dpkg-shlibdeps en mode verbeux (-v) fournira beaucoup
plus informations sur l'endroit o il a essay de trouver
l'information sur les dpendances. Ceci peut tre 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 suprieure pour le copyright. Il n'y a PAS de
garantie.
TRADUCTION
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006.
Nicolas Franois, 2006. Veuillez signaler toute erreur
<debian-l10n-french@lists.debian.org>.