dpkg-gensymbols(1) | dpkg suite | dpkg-gensymbols(1) |
dpkg-gensymbols - Symboldateien (Abhängigkeitsinformationen für Laufzeitbibliotheken) erstellen
dpkg-gensymbols [Option …]
dpkg-gensymbols durchsucht einen temporären Baubaum (standardmäßig debian/tmp), sucht nach Bibliotheken und erstellt eine Datei 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):
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 dpkg-gensymbols hilft dabei.
Wenn die erstellten Symboldateien sich von denen, die der Betreuer bereitgestellt hat, unterscheiden, wird 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 -c).
Das grundlegende Austauschformat der Symboldatei wird in 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 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/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 ‚~’ 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 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.
Eine gut verwaltete Bibliothek hat die folgenden Eigenschaften:
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.
Hinweis: Verwenden Sie diese Variable, statt 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.
Dieser Wert kann von der Umgebungsvariablen DPKG_GENSYMBOLS_CHECK_LEVEL außer Kraft gesetzt werden.
<https://people.redhat.com/drepper/symbol-versioning>, <https://people.redhat.com/drepper/goodpractice.pdf>, <https://people.redhat.com/drepper/dsohowto.pdf>, deb-src-symbol(5), deb-symbols(5), dpkg-shlibdeps(1).
Die deutsche Übersetzung wurde 2004, 2006-2023 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.
2023-05-11 | 1.21.22 |