DOKK / manpages / debian 11 / debhelper / dh_makeshlibs.1.de
DH_MAKESHLIBS(1) Debhelper DH_MAKESHLIBS(1)

dh_makeshlibs - erstellt automatisch die Shlibs-Datei und ruft dpkg-gensymbols auf

ÜBERSICHT

dh_makeshlibs [Debhelper-Optionen] [-mMajor] [-V[Abhängigkeiten]] [-n] [-XElement] [-- Parameter]

dh_makeshlibs ist ein Debhelper-Programm, das automatisch nach gemeinsam benutzten Bibliotheken sucht und für die gefundenen Bibliotheken eine Shlibs-Datei erzeugt.

Es stellt außerdem sicher, dass Ldconfig während der Installation und Entfernung aufgerufen wird, wenn es gemeinsam benutzte Bibliotheken findet. Seit Debhelper 9.20151004 wird dafür ein Dpkg-Auslösers eingesetzt. In älteren Versionen von Debhelper würde dh_makeshlibs zu diesem Zweck ein Betreuerskript erzeugen.

Seit Debhelper 12.3 wird dh_makeshlibs standardmäßig in der Datei shlibs eine zusätzliche udeb-Zeile eintragen, wenn das Udeb denselben Namen wie das Deb hat, gefolgt von einer »-udeb«-Endung (wenn z. B. das Deb »libfoo1« heißt, dann wird Debhelper ein Udeb namens »libfoo1-udeb« automatisch erkennen. Bitte benutzen Sie die nachfolgenden Optionen --add-udeb und --no-add-udeb, wenn diese automatische Erkennung nicht ausreicht.

Falls Sie vorher --add-udeb benutzt haben und mit dem Gedanken spielen, auf die neue automatische Erkennungsfunktionalität in 12.3 zu migrieren, dann denken Sie bitte daran zu testen, ob die resultierenden DEBIAN/shlibs-Dateien wie erwartet ausfallen. Es gibt einige bekannte Ausnahmefälle, in denen die automatische Erkennung nicht ausreicht. Dazu zählt u. a., dass das Udeb Bibliotheksdateien aus mehreren normalen Deb-Paketen enthält oder dass die Pakete nicht der erwarteten Namensübereinkunft folgen.

installiert, falls vorhanden, diese Datei in das Paket als DEBIAN/shlibs. Falls es weggelassen wird, erzeugt Debhelper automatisch eine Shlibs-Datei wenn es irgendwelche Bibliotheken entdeckt.

Beachten Sie, dass diese Datei in Kompatibilitätsmodi 9 und älter durch dh_installdeb(1) anstatt durch dh_makeshlibs installiert wurde.

Diese Symboldateien werden, falls sie vorhanden sind, zur Verarbeitung und Installation an dpkg-gensymbols(1) übergeben. Benutzen Sie die für die Architektur spezifischen Dateinamen, falls Sie mehrere unterschiedliche Symbole für unterschiedliche Architekturen bereitstellen müssen.

benutzt die nach dem Parameter -m angegebene Hauptnummer, anstatt zu versuchen, die Hauptnummer der Bibliothek mit Objdump zu erraten. Dies ist weit weniger nützlich als früher zu den schlechten alten Zeiten, als dieses Programm nach Bibliotheksdateinamen suchte, anstatt Objdump zu verwenden.
Falls durch dieses Programm eine Shlibs-Datei erzeugt wurde, steuert diese Option, welche Version in der Abhängigkeitsbeziehung benutzt werden soll.

Auf Kompatibilitätsstufe 12 und höher ist die Voreinstellung von dh_makeshlibs -VUpstream-Version. Auf Kompatibilitätsstufe 11 und niedriger verhält sich die Voreinstellung wie -VNone.

Das Werkzeug dh_makeshlibs kann Abhängigkeiten in drei Varianten erzeugen:

Die Abhängigkeit wird »Paketname (>= Paketversion)« lauten. Beachten Sie, dass VUpstream-Version Groß- und Kleinschreibung berücksichtigt und genau wie hier gezeigt geschrieben werden muss.

Dies ist eine zurückhaltende Einstellung, die immer sicherstellt, dass die Abhängigkeiten von gemeinsam benutzten Bibliotheken anderer Pakete mindestens so eng sind wie erforderlich (es sei denn, in Ihrer Bibliothek wird gern das ABI geändert, ohne die Versionsnummer der Ursprungsautoren zu aktualisieren).

Die Kehrseite ist, dass Pakete mit Abhängigkeiten enden können, die in einigen Fällen zu eng sind (beachten Sie, dass eine Symboldatei dieses Problem entschärfen kann). Dies ist aber oft eine kleine, vorübergehende Unannehmlichkeit und normalerweise viel besser als der Rattenschwanz an Problemen, der entsteht, wenn vergessen wird, die Abhängigkeitsinfos mitzupflegen.

Diese eindeutige Form wurde in Debhelper/11.3 hinzugefügt. In früheren Versionen wurde stattdessen ein -V ohne irgendwelche Abhängigkeitsinformationen benutzt (und diese Form funktioniert immer noch).

Die Abhängigkeit wird »Paketname« lauten. Beachten Sie, dass None die Groß- und Kleinschreibung berücksichtigt und daher genau wie hier gezeigt geschrieben werden muss.

Diese Form ist im Allgemeinen unsicher, es sei denn, die Ursprungsautoren erweitern das ABI in keiner Weise. Die meisten Ursprungsautoren verbessern jedoch ihre Schnittstellen mit der Zeit und es wird Paketierern empfohlen, -VUpstream-Version (oder eine der anderen Formen von -VAbhängigkeiten) zu verwenden.

Alterantiv kann dies ausreichen, falls (und nur falls) das Paket Symbolversionierung verwendet (siehe dpkg-gensymbols(1)) und keine Udeb-Pakete baut. Beachten Sie, dass Symbole nicht von Udeb-Paketen unterstützt werden, die sich bei der Behandlung von Abhängigkeiten ausschließlich auf Shlibs verlassen.

In diesem Fall wird der an -V übergebene Wert als Abhängigkeitsbeziehung benutzt. Die Paketbeziehung sollte generell die Form »irgendein-Paketname (>= irgendeine-Paketversion) haben. Denken Sie daran, den Paketnamen beizufügen.

Beachten Sie, dass Debhelper diesen Wert so benutzen wird, wie er ist, ohne zu prüfen, ob er vernünftig und ohne Änderung ist. In seltenen Sonderfällen ist das erforderlich, um eine Abhängigkeit zu einem anderen Paket zu erzeugen als dem, das die Bibliothek enthält.

Wenn ein Wert für diese Option gewählt wird, denken Sie bitte daran, dass eine Symboldatei generell den Vorzug gegenüber der Shlibs-Datei für normale .deb-Pakete erhält, falls das Paket eine solche bereitstellt. Weitere Informationen über dieses Thema finden Sie unter dpkg-shlibdeps(1).

Fügen Sie den Auslöser »ldconfig« selbst dann nicht hinzu, wenn das Paket ihn scheinbar benötigt. Diese Option wird aus historischen Gründen --noscripts genannt, da dh_makeshlibs früher Betreuerskripte erzeugt hatte, die ldconfig aufriefen.
schließt Dateien aus, die irgendwo in ihrem Datei- oder Verzeichnisnamen Element enthalten, als gemeinsam benutzte Bibliotheken betrachtet zu werden.
erstellt eine zusätzliche Zeile für Udebs in der Shlibs-Datei und benutzt Udeb als Paketnamen für Udebs als Abhängigkeit, anstelle des regulären Bibliothekpakets.

Diese Option eignet sich nur für Sonderfälle, beispielsweise wenn Debhelper den Paketnamen des Udeb-Pakets nicht automatisch ermitteln kann, das Udeb Bibliotheken aus mehreren Deb-Paketen enthalten wird oder das Udeb Bibliotheken enthält, die nicht im Deb-Paket enthalten sind.

fügt der Shlibs-Datei keine Udeb-Zeilen hinzu. Damit kann die voreingestellte automatische Erkennung von Udebs deaktiviert werden.

Dies kann nützlich sein, wenn Sie gar keine Shlibs-Datei für das Udeb wollen, weil kein Paket davon abhängt; bspw. weil das Hinzufügen eines Udeb-Pakets für die Bibliothek übertrieben wäre und die Bibliothek in ein anderes Udeb-Paket eingebettet ist.

übergibt Parameter an dpkg-gensymbols(1).

Angenommen, dies sei ein Paket mit Namen libfoobar1, wird eine Shlibs-Datei erzeugt, die ungefähr so aussieht:
libfoobar 1 libfoobar1
Angenommen, dies sei die aktuelle Version des Pakets 1.1-3, wird eine Shlibs-Datei erzeugt, die in etwa wie folgt aussieht:
libfoobar 1 libfoobar1 (>= 1.1)
erzeugt eine Shlibs-Datei, die in etwa so aussieht:
libfoobar 1 libfoobar1 (>= 1.0)

debhelper(7)

Dieses Programm ist Teil von Debhelper.

ÜBERSETZUNG

Diese Übersetzung wurde mit dem Werkzeug po4a <http://po4a.alioth.debian.org/> durch Chris Leick c.leick@vollbio.de und das deutsche Debian-Übersetzer-Team im Dezember 2011 erstellt.

Bitte melden Sie alle Fehler in der Übersetzung an debian-l10n-german@lists.debian.org oder als Fehlerbericht an das Paket debhelper.

Sie können mit dem folgenden Befehl das englische Original anzeigen man -L en Abschnitt Handbuchseite

Joey Hess <joeyh@debian.org>

2021-03-06 13.3.4