dh_makeshlibs - erstellt automatisch die Shlibs-Datei und ruft dpkg-gensymbols
auf
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.
- debian/Paket.shlibs
- 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.
- 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.
-
-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 als früher zu den
schlechten alten Zeiten, 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 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).
- -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 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).
-
-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 erzeugt hatte, die ldconfig
aufriefen.
-
-XElement,
--exclude=Element
- schließt Dateien aus, die irgendwo in ihrem Datei-
oder Verzeichnisnamen Element enthalten, als gemeinsam benutzte
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, 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.
- --no-add-udeb
- 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.
-
-- Parameter
- übergibt Parameter an
dpkg-gensymbols(1).
- dh_makeshlibs -VNone
- Angenommen, dies sei ein Paket mit Namen libfoobar1,
wird eine Shlibs-Datei erzeugt, die ungefähr so aussieht:
libfoobar 1 libfoobar1
- dh_makeshlibs -VUpstream-Version
- 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)
- dh_makeshlibs -V 'libfoobar1 (>= 1.0)'
- erzeugt eine Shlibs-Datei, die in etwa so aussieht:
libfoobar 1 libfoobar1 (>= 1.0)
debhelper(7)
Dieses Programm ist Teil von Debhelper.
Diese Übersetzung wurde mit dem Werkzeug
po4a
<
http://po4a.alioth.debian.org/> durch Chris Leick
[email protected] und das deutsche Debian-Übersetzer-Team im
Dezember 2011 erstellt.
Bitte melden Sie alle Fehler in der Übersetzung an
[email protected] 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 <
[email protected]>