Man page - dpkg-shlibdeps(1)
Packages contains this manual
- deb822(5)
- dpkg-vendor(1)
- deb-symbols(5)
- deb-src-rules(5)
- dpkg-mergechangelogs(1)
- dsc(5)
- deb-src-control(5)
- dpkg-shlibdeps(1)
- dpkg-genbuildinfo(1)
- dpkg-scanpackages(1)
- deb-substvars(5)
- dpkg-parsechangelog(1)
- dpkg-architecture(1)
- deb-triggers(5)
- deb-changelog(5)
- deb-extra-override(5)
- deb-buildinfo(5)
- dpkg-buildpackage(1)
- dpkg-distaddfile(1)
- dpkg-gencontrol(1)
- dpkg-buildtree(1)
- deb-postrm(5)
- deb-version(7)
- deb-prerm(5)
- deb-preinst(5)
- deb-src-files(5)
- dpkg-buildapi(1)
- dpkg-checkbuilddeps(1)
- deb-src-symbols(5)
- deb-old(5)
- dpkg-source(1)
- deb-changes(5)
- deb-origin(5)
- dpkg-buildflags(1)
- deb-override(5)
- deb(5)
- dpkg-scansources(1)
- deb-control(5)
- deb-split(5)
- deb-shlibs(5)
- dpkg-build-api(7)
- deb-postinst(5)
- deb-conffiles(5)
- dpkg-genchanges(1)
- dpkg-gensymbols(1)
- dpkg-name(1)
- deb-md5sums(5)
apt-get install dpkg-dev
Available languages:
en fr pt nl sv deManual
dpkg-shlibdeps
NOMSYNOPSIS
DESCRIPTION
Fichiers symboles
Fichiers Shlibs
OPTIONS
ENVIRONNEMENT
DIAGNOSTICS
Avertissements
Erreurs
VOIR AUSSI
TRADUCTION
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Ă©pendance oĂč champ-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é
-e
exécutable
.
-e
exé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.
-l ré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.
-d champ-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 -d champ-dĂ©pendance concerne tous les exĂ©cutables qui suivent lâoption, jusquâĂ la prochaine option -d champ-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.
-p pré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 .
-t type
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.
-L fichier-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 .
-T fichier-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. |
-x package
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.
-S ré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.
-I ré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= [ value | string [,...]]
Select the set of warnings that can be emitted by dpkg-shlibdeps (since dpkg 1.14.17).
The warnings
can be selected from a comma-separated list of symbolic
names (since dpkg 1.22.12), or from a
value
denoting
a bit field for these warnings.
symbol-not-found (bit 0, value 1)
Selects the warning âsymbol sym used by binary found in none of the librariesâ.
Enabled by default.
avoidable-dependency (bit 1, value 2)
Selects the warning âpackage could avoid a useless dependencyâ.
Enabled by default.
useless-linkage (bit 2, value 4)
Select the warning â binary should not be linked against library â.
--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 -l bibliothĂš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>.