summaryrefslogtreecommitdiffstats
path: root/man/de/dpkg-gensymbols.pod
blob: d64b3ce400a68a98e6738bab0482b49761ba2a72 (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
        *****************************************************
        *           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 BEZEICHNUNG

dpkg-gensymbols - Symboldateien (Abhängigkeitsinformationen für
Laufzeitbibliotheken) erstellen

=head1 ÜBERSICHT

B<dpkg-gensymbols> [I<Option> …]

=head1 BESCHREIBUNG

B<dpkg-gensymbols> durchsucht einen temporären Baubaum (standardmäßig
debian/tmp), sucht nach Bibliotheken und erstellt eine Datei I<symbols>, die
diese beschreibt. Diese Datei wird, falls sie nicht leer ist, in das
Unterverzeichnis DEBIAN des Baubaums installiert, so dass sie schlussendlich
in der Steuerinformation des Pakets auftaucht.

Beim Erstellen dieser Dateien verwendet es als Eingabe einige vom Betreuer
bereitgestellte Symboldateien. Es sucht nach den folgenden Dateien (und
verwendet die erste, die gefunden wird):

=over 

=item *

debian/I<Paket>.symbols.I<Architektur>

=item *

debian/symbols.I<Architektur>

=item *

debian/I<Paket>.symbols

=item *

debian/symbols

=back

Der Hauptzweck dieser Dateien besteht darin, die minimale Version
bereitzustellen, die mit jedem von der Bibliothek bereitgestellten Symbol
verknüpft ist. Normalerweise entspricht dies der ersten Version des Pakets,
die dieses Symbol bereitgestellt hat, kann aber vom Betreuer erhöht werden,
falls die ABI des Symbols ohne brechen der Rückwärtskompatibilität erweitert
wurde. Es liegt in der Verantwortung des Betreuers, diese Dateien aktuell zu
halten, aber B<dpkg-gensymbols> hilft dabei.

Wenn die erstellten Symboldateien sich von denen, die der Betreuer
bereitgestellt hat, unterscheiden, wird B<dpkg-gensymbols> einen Diff
zwischen den zwei Versionen anzeigen. Falls die Unterschiede desweiteren zu
gravierend sind, wird es sogar fehlschlagen (Sie können einstellen, wie
große Unterschiede Sie tolerieren können, sehen Sie hierzu die Option
B<-c>).

=head1 SYMBOLDATEIEN PFLEGEN

Das grundlegende Austauschformat der Symboldatei wird in B<deb-symbols>(5)
beschrieben. Dies wird von den in Binärpaketen enthaltenen Symboldateien
verwandt. Diese werden aus Vorlage-Symboldateien erstellt, deren Format auf
Ersterem basiert, in B<deb-src-symbols>(5) beschrieben und in Quellpaketen
enthalten ist.

Die Symboldateien sind nur wirklich nützlich, falls sie die Entwicklung
eines Paketes über mehrere Veröffentlichungen hinweg wiedergeben. Daher muss
der Betreuer sie immer aktualisieren, wenn eine neues Symbol hinzugefügt
wird, so dass die zugeordnete minimale Version der Realität entspricht.

Die in den Bauprotokollen enthaltenen Diffs können als Startpunkt benutzt
werden, aber zusätzlich hat der Betreuer sicherzustellen, dass sich das
Verhalten dieser Symbole nicht derart geändert hat, dass irgendetwas, was
diese Symbole verwendet und gegen die neue Version gelinkt ist, daran
hindern würde, mit der alten Version zu funktionieren.

Meistens kann der Diff direkt auf die Datei debian/I<Paket>.symbols
angewandt werden. Allerdings werden normalerweise weitere Anpassungen
notwendig: es wird beispielsweise empfohlen, die Debian-Revision von der
minimalen Version zu entfernen, so dass Backports mit einer niedrigeren
Versionsnummer, aber der gleichen Version der Originalautoren immer noch die
erstellten Abhängigkeiten erfüllen. Falls die Debian-Revision nicht entfernt
werden kann, da das Symbol wirklich von der Debian-spezifischen Änderung
hinzugefügt wurde, dann sollte der Version ‚B<~>’ angehängt werden.

Bevor irgendein Patch auf die Symboldatei angewendet wird, sollte der
Betreuer zweimal prüfen, dass der Patch vernünftig ist. Öffentliche Symbole
sollten nicht verschwinden, daher sollte der Patch idealerweise nur neue
Zeilen hinzufügen.

Beachten Sie, dass Sie in Symboldateien Kommentare verwenden können.

Vergessen Sie nicht, zu überprüfen, ob alte Versionen aktualisiert werden
müssen. Es gibt für B<dpkg-gensymbols> keine Möglichkeit, hierzu eine
Warnung auszugeben. Wird der Diff blind akzeptiert oder wird angenommen,
dass nichts geändert werden muss, wenn es keinen Diff gibt, ohne auf
Änderungen zu prüfen, kann dies dazu führen, dass lockere Abhängigkeiten
erzeugt werden, laut deren mit älteren Versionen gearbeitet werden kann,
obwohl dies nicht möglich ist. Dies wird zu schwer zu findenden Fehlern bei
(teilweisen) Upgrades führen.

=head2 Gute Bibliotheksverwaltung

Eine gut verwaltete Bibliothek hat die folgenden Eigenschaften:

=over 

=item *

ihre API ist stabil (öffentliche Symbole entfallen nie, nur neue öffentliche
Symbole werden hinzugefügt) und inkompatible Änderungen erfolgen nur, wenn
sich der SONAME ändert,

=item *

idealerweise verwendet sie Symbolversionierung, um ABI-Stabilität trotz
interner Änderungen und API-Erweiterungen zu erreichen,

=item *

sie exportiert nie private Symbole (als Hilfslösung können diese als
optional gekennzeichnet werden).

=back

Bei der Verwaltung der Symboldatei kann das Auftauchen und Verschwinden von
Symbolen leicht bemerkt werden. Es ist aber schwieriger, inkompatbile API-
und ABI-Änderungen zu bemerken. Daher sollte der Betreuer intensiv die
Changelog-Einträge der Originalautoren durchschauen und nach Fällen suchen,
in denen die Regeln der guten Bibliotheksverwaltung gebrochen wurden. Falls
mögliche Probleme entdeckt wurden, sollten der Originalautor informiert
werden, da eine Korrektur vom Originalautor immer besser als eine
Debian-spezifische Hilfslösung ist.

=head1 OPTIONEN

=over 

=item B<-P>I<Paketbauverzeichnis>

Sucht nach I<Paketbauverzeichnis> statt nach debian/tmp.

=item B<-p>I<Paket>

Definiert den Paketnamen. Wird benötigt, falls mehr als ein binäres Paket in
debian/control aufgeführt ist (oder falls es keine Datei debian/control
gibt).

=item B<-v>I<Version>

Definiert die Paketversion. Standardmäßig wird die Version aus
I<debian/changelog> entnommen. Benötigt, falls der Aufruf außerhalb des
Quellpaketbaums erfolgt.

=item B<-e>I<Bibliotheksdatei>

Untersucht nur die explizit aufgeführten Bibliotheken, statt nach allen
öffentlichen Bibliotheken zu suchen. Sie können Shell-Muster, die zur
Expansion von Pfadnamen verwandt werden (siehe die Handbuchseite
B<File::Glob>(3perl) für weitere Details) in I<Bibliotheksdatei> verwenden,
um mehrere Bibliotheken mit einem einzelnen Argument abzugleichen
(andernfalls benötigen Sie mehrere B<-e>).

=item B<-l>I<Verzeichnis>

Stellt I<Verzeichnis> der Liste der zu durchsuchenden privaten
Laufzeitbibliotheken voran (seit Dpkg 1.19.1). Diese Option kann mehrfach
angegeben werden.

B<Hinweis>: Verwenden Sie diese Variable, statt B<LD_LIBRARY_PATH> zu
setzen, da diese Umgebungsvariable verwandt wird, um den Laufzeit-Linker zu
steuern und ihr Missbrauch zum Setzen von Pfaden zu Laufzeitbibliotheken zur
Bauzeit kann beispielsweise beim Cross-Kompilieren problematisch werden.

=item B<-I>I<Dateiname>

Verwendet I<Dateiname> als Referenzdatei, um die Symboldatei zu erstellen,
die dann im Paket selbst integriert wird.

=item B<-O>[I<Dateiname>]

Die erstellte Symbols-Datei auf die Standardausgabe oder nach I<Dateiname>,
falls angegeben, ausgeben statt in B<debian/tmp/DEBIAN/symbols> (oder
I<Paket-Bauverzeichnis>B</DEBIAN/symbols>, falls B<-P> verwandt
wurde). Falls I<Dateiname> bereits existiert, wird deren Inhalt als
Grundlage für die erstellte Symboldatei verwandt. Sie können diese
Funktionalität benutzen, um eine Symboldatei zu aktualisieren, so dass sie
zu einer neueren Version der Originalautoren Ihrer Bibliothek passt.

=item B<-t>

Schreibt die Symboldatei im Vorlagenmodus statt im zu B<deb-symbols>(5)
kompatiblen Format. Der Hauptunterschied besteht darin, dass im
Vorlagenmodus die Symbolnamen und Kennzeichnungen in ihrer Originalform
geschrieben werden, im Gegensatz zu den verarbeiteten Symbolnamen mit
entfernten Kennzeichnungen im Kompatibilitätsmodus. Desweiteren könnten
einige Symbole beim Schreiben einer Standard-B<deb-symbols>(5)-Datei
entfernt werden (gemäß der Verarbeitungsregeln für Kennzeichen), während in
der Symboldateivorlage immer alle Symbole geschrieben werden.

=item B<-c>I<[0-4]>

Definiert die Prüfungen, die beim Vergleich der erstellten Symboldatei mit
der Vorlagendatei als Startpunkt erfolgen sollen. Standardstufe ist
1. Zunehmende Stufen führen mehr Prüfungen durch und enthalten alle
Prüfungen der niedrigeren Stufen. Stufe 0 schlägt nie fehl. Stufe 1 schlägt
fehl, wenn einige Symbole verschwunden sind. Stufe 2 schlägt fehl, falls
einige neue Symbole eingeführt wurden. Stufe 3 schlägt fehl, falls einige
Bibliotheken verschwunden sind. Stufe 4 schlägt fehl, falls einige
Bibliotheken hinzugekommen sind.

Dieser Wert kann von der Umgebungsvariablen B<DPKG_GENSYMBOLS_CHECK_LEVEL>
außer Kraft gesetzt werden.

=item B<-q>

Ruhig verhalten und nie einen Diff zwischen der erstellten Symboldatei und
der als Startpunkt verwandten Vorlagendatei erstellen oder keine Warnungen
bezüglich neuer/verschwundener Bibliotheken oder neuer/verschwundener
Symbole ausgeben. Diese Option deaktiviert nur die informative Ausgabe, aber
nicht die Prüfungen selbst (sehen Sie hierzu die Option B<-c>).

=item B<-a>I<Architektur>

Nimmt I<Arch> als Host-Architektur beim Verarbeiten der Symboldateien
an. Verwenden Sie diese Option, um Symboldateien oder Diffs für beliebige
Architekturen zu erstellen, vorausgesetzt, die Binärprogramme sind bereits
verfügbar.

=item B<-d>

Debug-Modus aktivieren. Eine Vielzahl von Meldungen wird angezeigt, um zu
erklären, was B<dpkg-gensymbols> durchführt.

=item B<-V>

Ausführlichen Modus aktivieren. Die erstellte Symboldatei enthält veraltete
Symbole als Kommentare. Im Vorlagenmodus werden Mustersymbole desweiteren
von Kommentaren gefolgt, die die echten Symbole aufführen, die auf dieses
Muster passen.

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

Zeigt einen Hinweis zum Aufruf und beendet das Programm.

=item B<--version>

Gibt die Version aus und beendet das Programm.

=back

=head1 UMGEBUNG

=over 

=item B<DPKG_GENSYMBOLS_CHECK_LEVEL>

Setzt die Befehlsüberprüfungsstufe außer Kraft, selbst wenn das
Befehlszeilenargument B<-c> übergeben wurde (beachten Sie, dass dies der
üblichen Konvention widerspricht, demnach Befehlszeilenargumente Vorrang
gegenüber Umgebungsvariablen haben).

=item B<DPKG_COLORS>

Setzt den Farbmodus (seit Dpkg 1.18.5). Die derzeit unterstützten Werte
sind: B<auto> (Vorgabe), B<always> und B<never>.

=item B<DPKG_NLS>

Falls dies gesetzt ist, wird es zur Entscheidung, ob Native Language
Support, auch als Unterstützung für Internationalisierung (oder i18n)
bekannt, aktiviert wird (seit Dpkg 1.19.0). Die akzeptierten Werte sind:
B<0> und B<1> (Vorgabe).

=back

=head1 SIEHE AUCH

L<https://people.redhat.com/drepper/symbol-versioning>,
L<https://people.redhat.com/drepper/goodpractice.pdf>,
L<https://people.redhat.com/drepper/dsohowto.pdf>, B<deb-src-symbol>(5),
B<deb-symbols>(5), B<dpkg-shlibdeps>(1).


=head1 ÜBERSETZUNG

Die deutsche Übersetzung wurde 2004, 2006-2020 von Helge Kreutzmann
<debian@helgefjell.de>, 2007 von Florian Rehnisch <eixman@gmx.de> und
2008 von Sven Joachim <svenjoac@gmx.de>
angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General Public License Version 2 oder neuer für die Kopierbedingungen.
Es gibt KEINE HAFTUNG.