DH_MAKESHLIBS

Section: Debhelper (1)
Updated: 2021-02-15
Page Index
 

NAME

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

ÜBERSICHT

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

BESCHREIBUNG

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

Es wird außerdem sicherstellen, das Ldconfig während des Installierens und Entfernens aufgerufen wird, wenn es gemeinsam benutzte Bibliotheken findet. Seit Debhelper 9.20151004wird dies mittels eines Dpkg-Auslösers erledigt. In älteren Versionen von Debhelper würde dh_makeshlibs zu diesem Zweck ein Betreuerskript erzeugen.

seit Debhelper 12.3 wird dh_makeshlibs standardmäßig eine zusätzliche udeb-Zeile in der Datei shlibs hinzufügen, wenn das Udeb denselben Namen wie das Deb gefolgt von einer »-udeb«-Endung hat (z.B. falls das Deb »libfoo1« heißt, dann wird Debhelper das Udeb automatisch erkennen, falls es »libfoo1-udeb« heißt). 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 sind. Es gibt einige bekannte Ausnahmefälle, in denen die automatische Erkennung nicht ausreicht. Diese beinhalten, wenn das Udeb Bibliotheksdateien aus mehreren normalen Deb-Paketen enthält oder wenn die Pakete nicht der erwarteten Namensübereinkunft folgen.  

DATEIEN

debian/Paket.shlibs
installiert, falls vorhanden, diese Datei in das Paket als DEBIAN/shlibs. Falls es weggelassen wird, erzeugt Debhelper automatisch eine Shlibs-Datei falls 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.

debian/Paket.symbols
debian/Paket.symbols.Architektur
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.
 

OPTIONEN

-mHauptnummer, --major=Hauptnummer
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, wie es früher zu den schlimmen alten Zeiten war, als dieses Programm nach Bibliotheksdateinamen suchte, anstatt Objdump zu verwenden.
-V, -VAbhängigkeiten
--version-info, --version-info=Abhängigkeiten
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:

-VUpstream-Version
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 behutsame Einstellung, die immer sicherstellt, dass gemeinsam benutzte Bibliothekabhängigkeiten anderer Pakete mindestens so eng sind, wie erforderlich (es sei denn, Ihre Bibliothek ist anfällig, das ABI zu ändern, ohne die Versionsnummer der Ursprungsautoren zu aktualisieren).

Die Kehrseite ist, dass Pakete mit Abhängigkeiten enden, die in einigen Fällen zu eng sind (beachten Sie, dass eine Symboldatei dieses Problem abschwächen kann). Dies ist oft eine kleine, vorübergehende Unannehmlichkeit und normalerweise viel besser als mit den Problemen umzugehen, die durch das Vergessen der Mitpflege von Abhängigkeitsinformationen verursacht werden.

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

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

-VPaketbeziehung
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 Paketname beizufügen.

Beachten Sie, dass Debhelper diesen Wert so benutzen wird, wie er ist, ohne Prüfung, ob er vernünftig ist und ohne Änderung. In seltenen Sonderfällen ist dies 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).

-n, --no-scripts
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 erzeugen würde, die ldconfig aufriefen.
-XElement, --exclude=Element
schließt Dateien aus, die irgendwo in ihrem Datei- oder Verzeichnisnamen Element enthalten, als Bibliotheken betrachtet zu werden.
--add-udeb=Udeb
erstellt eine zusätzliche Zeile für Udebs in der Shlibs-Datei und benutzt Udeb als Paketnamen für Udebs als Abhängigkeit, an Stelle des regulären Bibliothekpakets.

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

--no-add-udeb
Fügen Sie der Shlibs-Datei keine Udeb-Zeilen hinzu. Dies kann benutzt werden, um die voreingestellte automatische Erkennung von Udebs zu deaktivieren.

This may be useful in case you do not want a shlibs file at all for the udeb because no package will depend on it. E.g. because adding a udeb package for the library was ``overkill'' and the library is embedded in a different udeb package.

-- Parameter
übergibt Parameter an dpkg-gensymbols(1).
 

BEISPIELE

dh_makeshlibs -VNone
unter der Annahme dass dies ein Paket mit Namen libfoobar1 sei, wird eine Shlibs-Datei erzeugt, die ungefähr so aussieht:
 libfoobar 1 libfoobar1
dh_makeshlibs -VUpstream-Version
unter der Annahme, dass die aktuelle Version des Pakets 1.1-3 ist, wird eine Shlibs-Datei erzeugt, die in etwa wie folgt aussieht:
 libfoobar 1 libfoobar1 (>= 1.1)
dh_makeshlibs -V 'libfoobar1 (>= 1.0)'
erzeugt eine Shlibs-Datei, die in etwa so aussieht:
  libfoobar 1 libfoobar1 (>= 1.0)
 

SIEHE AUCH

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  

AUTOR

Joey Hess <joeyh@debian.org>


 

Index

NAME
ÜBERSICHT
BESCHREIBUNG
DATEIEN
OPTIONEN
BEISPIELE
SIEHE AUCH
ÜBERSETZUNG
AUTOR