summaryrefslogtreecommitdiffstats
path: root/man/fr/dpkg-shlibdeps.pod
blob: dae196ee7e32ccd38bfed5992d33939a6e0e5cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 NOM

dpkg-shlibdeps - Générateur de variables de substitution de dépendances pour
bibliothèques partagées

=head1 SYNOPSIS

B<dpkg-shlibdeps> [I<option>...] [B<-e>] I<executable> [I<option>...]

=head1 DESCRIPTION

B<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
B<debian/substvars> sous la forme B<shlibs:>I<champ-dépendance> où
I<champ-dépendance> est le nom du champ de dépendance. Toute autre variable
après I<shlibs:> est supprimée du fichier.

B<dpkg-shlibdeps> a deux sources possibles pour créer les informations
concernant les dépendances, soit les fichiers I<symbols>, soit les fichiers
I<shlibs>. Pour chaque fichier binaire qu'il analyse, B<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 I<symbols>, soit le fichier
I<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
%ADMINDIR%/info/I<paquet>.I<symbols> ou
%ADMINDIR%/info/I<paquet>.I<shlibs>. Le nom du paquet est trouvé en deux
S<étapes :> en cherchant le fichier de la bibliothèque sur le système, dans le
répertoire que B<ld.so> utiliserait, puis en utilisant B<dpkg -S>
I<fichier-bibliothèque> pour trouver le paquet qui fournit cette
bibliothèque.

=head2 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 S<utilisé) :>

=over 

=item debian/*/DEBIAN/symbols

Les informations de bibliothèque partagée générées par l'actuel processus de
construction qui invoque aussi B<dpkg-shlibdeps>. Elles sont générées par
B<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.

=item %PKGCONFDIR%/symbols/I<paquet>.symbols.I<architecture>

=item %PKGCONFDIR%/symbols/I<paquet>.symbols

Les informations de dépendance de bibliothèque partagée principales par
système. I<arch> est l'architecture du système actuel (obtenue par
B<dpkg-architecture -qDEB_HOST_ARCH>).

=item Affichage de “B<dpkg-query --control-path> I<paquet> symbols”

Les informations de dépendance de bibliothèque partagée fournies par le
paquet. Sauf indication contraire par le biais de B<--admindir>, ces
fichiers sont par défaut dans %ADMINDIR%.

=back

Lors de l'analyse des symboles utilisés par tous les binaires,
B<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 I<symbols> soit exacte).

Comme garde-fou, un fichier de symboles peut fournir un champ
B<Build-Depends-Package> de méta-information et B<dpkg-shlibdeps> en
extraira la version minimale requise par le paquet correspondant depuis ce
champ B<Build-Depends> et utilisera cette version si elle est supérieure à
la version minimale calculée par l'examen des symboles.

=head2 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
S<utilisé :>

=over 

=item debian/shlibs.local

Fichier particulier à un paquet remplaçant les informations qui concernent
les dépendances envers des bibliothèques partagées.

=item %PKGCONFDIR%/shlibs.override

Fichier système remplaçant les informations qui concernent les dépendances
envers des bibliothèques partagées.

=item debian/*/DEBIAN/shlibs

Information sur la bibliothèque partagée générée par le processus actuel de
construction qui invoque aussi B<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.

=item Affichage de S<« B<dpkg-query> --control-path> I<paquet> S<shlibs »>

Les informations de dépendance de bibliothèque partagée fournies par le
paquet. Sauf indication contraire par le biais de B<--admindir>, ces
fichiers sont par défaut dans %ADMINDIR%.

=item %PKGCONFDIR%/shlibs.default

Fichier système par défaut concernant les informations de dépendance envers
des bibliothèques partagées.

=back

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

=head1 OPTIONS

B<dpkg-shlibdeps> interprète des arguments sans option comme des commandes
exécutables, comme si on avait simplement donné B<-e>I<exécutable>.

=over 

=item B<-e>I<exécutable>

Cette option inclut les bonnes dépendances envers les bibliothèques
partagées que demande I<exécutable>. Cette option peut être utilisée
plusieurs fois.

=item B<-l>I<répertoire>

Ajoute I<répertoire> au début de la liste des répertoires où chercher des
bibliothèques partagées privées (depuis S<dpkg 1.17.0).> Cette option peut être
utilisée plusieurs fois.

B<Note:> Use this option instead of setting B<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.

=item B<-d>I<champ-dépendance>

Cette option ajoute les dépendances destinées au champ S<« dépendance »> du
fichier de contrôle I<champ-dépendance>. (Les dépendances pour ce champ sont
dans la variable B<shlibs:>I<champ-dépendance>.)

L'option B<-d>I<champ-dépendance> concerne tous les exécutables qui suivent
l'option, jusqu'à la prochaine option B<-d>I<champ-dépendance>. Par défaut,
I<champ-dépendance> vaut B<Depends>.

Quand, dans plusieurs champs reconnus ayant trait aux dépendances comme les
champs B<Pre-Depends>, B<Depends>, B<Recommends>, B<Enhances> ou B<Suggests>
apparaît la même entrée (ou bien un ensemble d'alternatives),
B<dpkg-shlibdeps> supprime automatiquement les dépendances dans tous les
champs sauf celui qui représente les dépendances les plus importantes.

=item B<-p>I<préfixe-pour-le-nom-des-variables>

Fait commencer les variables de substitution par
I<préfixe-pour-le-nom-des-variables>B<:> au lieu de B<shlibs:>. De même,
toute variable de substitution commençant par
I<préfixe-pour-le-nom-des-variables>B<:> (au lieu de B<shlibs:>) est enlevée
du fichier de substitution des variables.

=item B<-O>[I<nom-de-fichier>]

Affiche les définitions des variables de substitution sur la sortie standard
(ou I<nom-de-fichier> si spécifié, depuis S<dpkg 1.17.2),> plutôt que de les
ajouter dans le fichier de substitution des variables qui est par défaut
B<debian/substvars>.

=item B<-t>I<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 B<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.

=item B<-L>I<fichier-local-shlibs>

Lire les informations de remplacement concernant les dépendances envers les
bibliothèques partagées dans I<fichier-local-shlibs> au lieu de
B<debian/shlibs.local>.

=item B<-T>I<fichier-substvars>

Écrire les variables de substitution dans S<I<fichier-substvars> ;> le fichier
par défaut est B<debian/substvars>.

=item B<-v>

Active le mode bavard (depuis S<dpkg 1.14.8).> De nombreux messages sont
affichés pour expliquer ce que B<dpkg-shlibdeps> fait.

=item B<-x>I<package>

Exclut le paquet des dépendances générées (depuis S<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.

=item B<-S>I<répertoire-construction-paquet>

Recherche dans I<répertoire-construction-paquet> en premier et essaie de
trouver une bibliothèque (depuis S<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 S<fois :> les
répertoires seront examinés dans le même ordre avant les répertoires
d'autres paquets binaires.

=item B<-I>I<répertoire-construction-paquet>

Ignore I<répertoire-construction-paquet> lors de la recherche des fichiers
shlibs, de symboles et des bibliothèques partagées (depuis
S<dpkg 1.18.5).> Cette option peut être utilisée plusieurs fois.

=item B<--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 S<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.

=item B<--warnings=>I<valeur>

I<valeur> est un champ de S<« bit »> définissant l'ensemble des avertissements
qui peuvent être émis par B<dpkg-shlibdeps> (depuis S<dpkg 1.14.17).> Le bit
B<0> S<(valeur = 1)> active l'avertissement S<« symbole> I<sym> utilisé par le
I<binaire> trouvé dans aucune des S<bibliothèques ».> Le bit B<1> S<(valeur = 2)>
active l'avertissement S<« le> paquet pourrait éviter une dépendance
S<inutile ».> Le bit B<2> S<(valeur = 4)> active l'avertissement S<« Le> I<binaire>
ne devrait pas être lié à S<I<bibliothèque> ».> La I<valeur> par défaut est
S<B<3> :> les deux premières mises en garde sont actives par défaut, la
dernière ne l'est pas. Positionnez la I<valeur> S<à 7> si vous souhaitez que
tous les avertissements soient actifs.

=item B<--admindir>=I<répertoire>

Changer l'endroit où se trouve la base de données de B<dpkg> (depuis
S<dpkg 1.14.0).> Par défaut, c'est I<%ADMINDIR%>.

=item B<-?>, B<--help>

Affiche un message d'aide puis quitte.

=item B<--version>

Affiche le numéro de version puis quitte.

=back

=head1 ENVIRONNEMENT

=over 

=item B<DPKG_COLORS>

Définit le mode de couleur (depuis S<dpkg 1.18.5).> Les valeurs actuellement
acceptées sont B<auto> (par défaut), B<always> et B<never>.

=item B<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 S<– Native> Language Support), connu
aussi comme la gestion de l'internationalisation (ou i18n) (depuis
S<dpkg 1.19.0).> Les valeurs permises S<sont :> B<0> et B<1> (par défaut).

=back

=head1 DIAGNOSTICS

=head2 Avertissements

Depuis que B<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
S<rencontrer :>

=over 

=item B<symbole> I<sym> B<utilisé par> I<binaire> B<trouvé dans aucune des
bibliothèques.>

Le symbole indiqué n'a pas été trouvé dans les bibliothèques liées au
binaire. Le I<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 B<-l>I<bibliothèque> de l'éditeur de liens).

=item I<binary> B<contient une référence non résolue au symbole> S<I<sym> B<:> 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 I<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 S<« 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.

=item B<paquet pourrait éviter une dépendance inutile si> I<le binaire> B<n'était
pas lié avec> I<bibliothèque> B<(il ne fait usage d'aucun de ses symboles)>

Aucun des I<binaires> liés à la I<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).

=item B<paquet pourrait éviter une dépendance inutile si> I<les binaires>
B<n'étaient pas liés avec> I<bibliothèque> B<(ils ne font usage d'aucun de
ses symboles)>

Identique à l'avertissement précédent, pour des binaires multiples.

=item I<le binaire> B<ne devrait pas être lié avec la> I<bibliothèque> B<(il ne
fait usage d'aucun de ses symboles)>

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

=back

=head2 Erreurs

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

=over 

=item B<impossible de trouver la bibliothèque> I<library-soname> B<demandée par
le> I<binaire> B<(son RPATH est S<«> I<rpath>B< »)>>

Le I<binaire> utilise une bibliothèque appelée I<library-soname> mais
B<dpkg-shlibdeps> n'a pas été en mesure de trouver cette
bibliothèque. B<dpkg-shlibdeps> crée une liste de répertoires à vérifier de
la manière S<suivante :> les répertoires énumérés dans le RPATH du binaire, les
répertoires ajoutés par l'option B<-l>, les répertoires listés dans la
variable d'environnement B<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 B<-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
B<-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
B<-l> contient le répertoire approprié si c'est aussi un répertoire privé.

=item B<aucune information de dépendance trouvée pour> I<la bibliothèque>
B<(utilisée par le> I<binaire>B<).>

La bibliothèque nécessaire au I<binaire> a été trouvée par B<dpkg-shlibdeps>
dans I<fichier-bibliothèque> mais B<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 B<dpkg -S> I<fichier-bibliothèque>. Puis, il a vérifié les shlibs
correspondants et les fichiers symboles de %ADMINDIR%/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 B<dpkg-shlibdeps>). Un
mauvais RPATH peut aussi conduire à ce que la bibliothèque soit trouvée sous
un nom non canonique S<(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,
B<dpkg-shlibdeps> essaie de contourner cela en se repliant vers un nom
canonique (en utilisant B<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 B<dpkg-shlibdeps> en mode bavard (B<-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.

=back

=head1 VOIR AUSSI

B<deb-shlibs>(5), B<deb-symbols>(5), B<dpkg-gensymbols>(1).


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