Provided by: dpkg-dev_1.19.7ubuntu3.2_all bug

BEZEICHNUNG

       dpkg-shlibdeps - erstelle Substvar-Abhängigkeiten für Laufzeitbibliotheken

ÜBERSICHT

       dpkg-shlibdeps [Option …] [-e]Programm [Option …]

BESCHREIBUNG

       dpkg-shlibdeps berechnet Abhängigkeiten von Laufzeitbibliotheken für Programme, deren Name
       als  Argument  übergeben  werden.   Die   Abhängigkeiten   werden   zu   der   Datei   der
       Substitutionsvariablen   debian/substvars   als   Variablennamen  shlibs:Abhängigkeitsfeld
       hinzugefügt, wobei Abhängigkeitsfeld der Feldname einer  Abhängigkeit  ist.  Alle  anderen
       Variablen, die mit shlibs: beginnen, werden aus der Datei entfernt.

       dpkg-shlibdeps    hat    zwei    mögliche    Informationsquellen    zur   Erstellung   der
       Abhängigkeitsinformationen. Entweder Symbol- oder  Shlibs-Dateien.  dpkg-shlibdeps  findet
       für  jedes Programm, das es analysiert, die Bibliotheken heraus, gegen die es gelinkt ist.
       Bei jeder Bibliothek schaut es entweder in die Symbol-  oder  in  in  Shlibs-Datei  (falls
       erstere  nicht  existiert  odr  falls  debian/shlibs.local  die  relevanten Abhängigkeiten
       enthält). Beide Dateien sollten von dem Bibliothekspaket bereitgestellt werden und sollten
       daher  als  /var/lib/dpkg/info/Paket.Symbol oder /var/lib/dpkg/info/Paket.Shlibs verfügbar
       sein. Der Paketname wird in zwei Schritten identifiziert: zuerst wird die Bibliotheksdatei
       auf  dem  System  gefunden  (durch Prüfung der gleichen Verzeichnisse wie bei ld.so), dann
       wird dpkg -S Bibliotheksdatei verwendet, um das Paket, das die Bibliothek bereitstellt, zu
       ermitteln.

   Symboldateien
       Symboldateien   enthalten   feiner-granulare  Abhängigkeitsinformationen,  indem  sie  die
       Minimalabhängigkeit für jedes von  der  Bibliothek  exportierte  Symbol  beschreiben.  Das
       Skript  versucht,  eine  Symboldatei  die zu dem Bibliothekspaket gehört, an den folgenden
       Orten zuzuordnen (der erste Treffer wird verwendet):

       debian/*/DEBIAN/symbols
              Informationen über Laufzeitbibliotheken,  die  vom  aktuellen  Bauprozess  erstellt
              werden,   der  auch  dpkg-shlibdeps  aufruft.  Sie  werden  von  dpkg-gensymbols(1)
              erstellt. Sie werden nur verwendet, falls die Bibliothek  im  Bau-Baum  des  Pakets
              gefunden  wird. Die Symboldatei im Bau-Baum hat Vorrang gegenüber Symboldateien aus
              anderen Binärpaketen.

       /etc/dpkg/symbols/Paket.symbols.Architektur

       /etc/dpkg/symbols/Paket.symbols
              Systemabhängige     Überschreibung     der      Abhängigkeitsinformationen      von
              Laufzeitbibliotheken.   Architektur  ist  die  Architektur  des  aktuellen  Systems
              (ermittelt durch dpkg-architecture -qDEB_HOST_ARCH).

       Ausgabe von „dpkg-query --control-path Paket symbols“
              Vom  Paket  bereitgestellte  Abhängigkeitsinformationen  für  Laufzeitbibliotheken.
              Falls  nicht  durch  --admindir  überschrieben,  befinden sich solche Dateien unter
              /var/lib/dpkg.

       Während  des  Durchsuchens  aller  vom  Programm   verwendeten   Symbole   erinnert   sich
       dpkg-shlibdeps  an  die  größte Minimalversion, die von jeder Bibliothek benötigt wird. Am
       Ende des Prozesses ist es in der Lage, die  minimale  Abhängigkeit  für  jede  eingesetzte
       Bibliothek  zu  schreiben  (vorausgesetzt,  die  Informationen  in den Symbol-Dateien sind
       korrekt).

       Als   Sicherheitsmaßnahme    kann    eine    Symbols-Datei    ein    Meta-Informationsfeld
       Build-Depends-Package  enthalten. dpkg-shlibdeps extrahiert dann die minimale Version, die
       von dem korrespondierenden Paket im Feld Build-Depends benötigt wird, und verwendet  diese
       Version,  falls  sie  höher ist als die minimale Version, die beim Durchsuchen der Symbole
       ermittelt wurde.

   Shlibs-Dateien
       Shlibs-Dateien ordnen Bibliotheken direkt Abhängigkeiten  zu  (ohne  auf  die  Symbole  zu
       schauen).  Daher  ist  dies  oft  stärker  als  benötigt,  aber dafür sicher und leicht zu
       handhaben.

       Die Abhängigkeiten für eine Bibliothek wird an verschiedenen Stellen  nachgeschlagen.  Die
       erste   Datei,  die  Informationen  für  die  betrachtete  Bibliothek  bereitstellt,  wird
       verwendet:

       debian/shlibs.local
              Paket-beschränkte     Überschreibung     der     Abhängigkeitsinformationen     von
              Laufzeitbibliotheken.

       /etc/dpkg/shlibs.override
              Systemabhängige      Überschreibung      der     Abhängigkeitsinformationen     von
              Laufzeitbibliotheken.

       debian/*/DEBIAN/shlibs
              Informationen über Laufzeitbibliotheken,  die  vom  aktuellen  Bauprozess  erstellt
              werden,  der  auch  dpkg-shlibdeps  aufruft.  Sie  werden  nur verwendet, falls die
              Bibliothek im Bau-Verzeichnis eines  Pakets  gefunden  wird.  Die  Shlibs-Datei  in
              diesem  Bau-Verzeichnis  hat  gegenüber  Shlibs-Dateien  von  anderen  Binärpaketen
              Vorrang.

       Ausgabe von „dpkg-query --control-path Paket shlibs“
              Vom  Paket  bereitgestellte  Abhängigkeitsinformationen  für  Laufzeitbibliotheken.
              Falls  nicht  durch  --admindir  überschrieben,  befinden sich solche Dateien unter
              /var/lib/dpkg.

       /etc/dpkg/shlibs.default
              Systemabhängige Vorgaben für Abhängigkeitsinformationen von Laufzeitbibliotheken.

       Die entnommenen Abhängigkeiten werden  direkt  verwendet  (es  sei  den,  sie  werden  als
       Dubletten herausgefiltert oder sie sind schwächer als eine andere Abhängigkeit).

OPTIONEN

       dpkg-shlibdeps   interpretiert   nicht-Options-Argumente   als   Namen   von  ausführbaren
       Programmen, als ob diese mit -eProgramm übergeben worden wären.

       -eProgramm
              Abhängigkeiten aufnehmen,  die  für  von  Programm  benötigte  Laufzeitbibliotheken
              angemessen sind. Diese Option kann mehrfach angegeben werden.

       -lVerzeichnis
              Stellt  Verzeichnis  der  Liste der zu durchsuchenden privaten Laufzeitbibliotheken
              voran (seit Dpkg 1.17.0). Diese Option kann mehrfach angegeben werden.

              Hinweis: Verwenden Sie diese Variable, statt LD_LIBRARY_PATH zu setzten,  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-Übersetzen problematisch werden.

       -dAbhängigkeitsfeld
              Füge   Abhängigkeiten   hinzu,  die  zum  Abhängigkeitsfeld  Abhängigkeitsfeld  der
              Steuerdatei hinzugefügt werden sollen. (Die Abhängigkeiten für dieses  Feld  werden
              in die Variable shlibs:Abhängigkeitsfeld geschrieben.)

              Die  Option  -dAbhängigkeitsfeld  betrifft  alle  Programme,  die  danach angegeben
              werden,   bis   zum   nächsten   -dAbhängigkeitsfeld.    Der    Standardwert    für
              Abhängigkeitsfeld ist Depends.

              Falls  der  gleiche  Abhängigkeitseintrag (oder ein Satz von Alternativen) mehr als
              einmal in den erkannten Abhängigkeitsfeldnamen  Pre-Depends,  Depends,  Recommends,
              Enhances  oder  Suggests  auftaucht, wird dpkg-shlibdeps die Abhängigkeit von allen
              Feldern außer dem, das die wichtigsten Abhängigkeiten repräsentiert, entfernen.

       -pVariablennamepräfix
              Beginn die  Substitutionsvariablen  mit  Variablennamepräfix:  statt  mit  shlibs:.
              Entsprechend  werden  alle  Substitutionsvariablen,  die  mit  Variablennamepräfix:
              (statt mit shlibs:) beginnen, aus den Substitutionsvariablen entfernt.

       -O[Dateiname]
              Gebe die Variableneinstellung in die Standardausgabe (oder  nach  Dateiname,  falls
              angegeben,  seit  Dpkg  1.17.2)  aus,  statt sie zu der Substitutionsvariablendatei
              (standardmäßig (debian/substvars) hinzuzufügen.

       -tTyp  Bevorzuge  Abhängigkeitsinformationen  für  Laufzeitbibliotheken,   die   für   ein
              vorgegebenes Paket markiert sind. Falls keine Markierungsinformation verfügbar ist,
              fällt dies auf unmarkierte Informationen zurück.  Der  Standard-Pakettyp  ist  deb.
              Abhängigkeitsinformationen  für  Laufzeitbibliotheken werden für einen vorgegebenen
              Typ  markiert,  indem  vor  sie  der  Namen  des  Typs,  ein  Doppelpunkt  und  ein
              Leerraumzeichen gesetzt wird.

       -Llokale_shlibs-Datei
              Lese die Hinwegsetz-Abhängigkeiten von Laufzeitbibliotheken aus lokale_shlibs-Datei
              statt aus debian/shlibs.local.

       -TSubstvars-Datei
              Schreibe Substitutionsvariablen in Substvars-Datei; standardmäßig debian/substvars.

       -v     Aktiviere ausführlichen Modus (seit Dpkg 1.14.8).  Eine  Vielzahl  von  Nachrichten
              wird angezeigt, um zu erklären, was dpkg-shlibdeps durchführt.

       -xPaket
              Schließe  das Paket von den generierten Abhängigkeiten aus (seit Dpkg 1.14.8). Dies
              ist   für   Pakete    nützlich,    die    ELF-Programmdateien    (Programme    oder
              Bibliothekserweiterungen)  bereitstellen,  die  eine  Bibliothek  im gleichen Paket
              verwenden, um  selbst-Abhängigkeiten  zu  vermeiden.  Diese  Option  kann  mehrfach
              verwendet werden, um mehrere Pakete auszuschließen.

       -SPaketbauverzeichnis
              Schaue beim Versuch, eine Bibliothek zu finden, zuerst in Paketbauverzeichnis (seit
              Dpkg 1.14.15). Dies ist  nützlich,  wenn  das  Quellpaket  mehrere  Spielarten  der
              gleichen  Bibliothek  baut  und Sie sicherstellen wollen, dass Sie die Abhängigkeit
              aus  einem  bestimmten  Binärpaket  erhalten.  Sie  können  diese  Option  mehrfach
              verwenden:  Verzeichnisse  werden  in  der  gleichen Reihenfolge vor Verzeichnissen
              anderer Binärpakete probiert.

       -IPaketbauverzeichnis
              Ignoriert Paketbauverzeichnis bei  Schauen  nach  Shlibs,  Symbolen  und  gemeinsam
              benutzten  Bibliotheken  (seit  Dpkg  1.18.5).  Sie  können  diese  Option mehrfach
              verwenden.

       --ignore-missing-info
              Falls keine Abhängigkeitsinformationen für die Laufzeitbibliothek  gefunden  werden
              kann,  erfolgt kein Fehlschlag (seit Dpkg 1.14.8). Von der Verwendung dieser Option
              wird  abgearten,  da  alle  Bibliotheken  Abhängigkeitsinformationen  bereitstellen
              sollten  (entweder  über  shlibs-Dateien  oder  über symbols-Dateien), selbst falls
              diese noch nicht von anderen Paketen verwendet werden.

       --warnings=Wert
              Wert ist ein Bitfeld, das den Satz an Warnungen definiert, die  von  dpkg-shlibdeps
              ausgegeben  werden können (seit Dpkg 1.14.17). Bit 0 (Wert=1) aktiviert die Warnung
              „Symbol Sym, verwendet von Programm, in keiner der Bibliotheken gefunden.“,  Bit  1
              (Wert=2)  aktiviert  die  Warnung  „Das  Paket  könnte  eine  nutzlose Abhängigkeit
              vermeiden“ und Bit 2 (Wert=4) aktiviert die Warnung „Programm  sollte  nicht  gegen
              Bibliothek  gelinkt  werden“.  Standardmäßig  ist Wert 3: die ersten zwei Warnungen
              sind standardmäßig aktiv, die letzte nicht. Setzten  Sie  Wert  auf  7,  falls  Sie
              möchten, dass alle Warnungen aktiv sein sollen.

       --admindir=Verz
              Ändert  den  Ablageort  der  dpkg-Datenbank (seit Dpkg 1.14.0). Der Standardort ist
              /var/lib/dpkg.

       -?, --help
              Zeige den Bedienungshinweis und beende.

       --version
              Gebe die Version aus und beende sich.

UMGEBUNG

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

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

DIAGNOSE

   Warnungen
       Da  dpkg-shlibdeps  den Symbolsatz, der von jedem Programm des erstellten Pakets verwendet
       wird, analysiert, ist es in  mehreren  Fällen  in  der  Lage,  Warnungen  auszugeben.  Sie
       informieren  Sie  über  Dinge,  die  im Paket verbessert werden können. Meistens betreffen
       diese  Verbesserungen  direkt  die  Quellen  der  Originalautoren.  In   der   Reihenfolge
       abnehmender Wichtigkeit folgen hier die relevanten Warnungen, die auftauchen könnten:

       Symbol  Symbol, verwendet von Programm, in keiner der Bibliotheken gefunden.
              Das  angegebene  Symbol  wurde  nicht  in  den Bibliotheken gefunden, gegen die das
              Programm gelinkt wurde. Programm ist höchstwahrscheinlich eine Bibliothek und  muss
              mit  zusätzlichen  Bibliotheken  während  des  Bau-Prozesses gelinkt werden (Option
              -lBibliothek des Linkers).

       Programm enthält eine  nicht-auflösbare  Referenz  auf  Symbol  Sym:  wahrscheinlich  eine
       Erweiterung.
              Das  angegebene  Symbol  wurde  nicht  in den Bibliotheken gefunden, die mit diesem
              Programm verlinkt sind. Das Progamm ist höchstwahrscheinlich eine  Erweiterung  und
              das  Symbol  wird  von  dem  Programm  bereitgestellt,  das diese Erweiterung lädt.
              Theoretisch verfügt eine Erweiterung nicht über einen SONAMEn, allerdings ist  dies
              bei  diesem  Programm  der Fall und daher konnte es nicht eindeutig als Erweiterung
              erkannt werden. Die Tatsache, dass  dieses  Programm  in  einem  nicht-öffentlichen
              Verzeichnis  gespeichert  wird  ist allerdings ein starkes Anzeichen dafür, dass es
              keine normale gemeinsam benutzte Bibliothek ist. Falls dieses Programm  tatsächlich
              eine  Erweiterung  ist,  ignorieren  Sie  die Warnung. Allerdings besteht immer die
              Möglichkeit, dass es eine echte  Bibliothek  ist  und  dass  Programme,  die  damit
              verlinken,  einen  RPATH  verwenden,  so  dass  der dynamische Lader sie findet. In
              diesem Fall ist die Bibliothek beschädigt und muss repariert werden.

       Das Paket  könnte  eine  nutzlose  Abhängigkeit  vermeiden,  falls  Programm  nicht  gegen
       Bibliothek gelinkt wäre (es verwendet keines der Symbole der Bibliothek).
              Keines  der Programme die gegen Bibliothek gelinkt sind verwendet eines der von der
              Bibliothek  bereitgestellten  Symbole.  Indem  Sie  die   Programme   korrigierten,
              vermieden  Sie  die  Abhängigkeit,  die mit dieser Bibliothek verbunden ist (es sei
              denn, die Abhängigkeit wird auch durch eine andere Bibliothek generiert, die  diese
              Bibliothek wirklich verwendet).

       Das  Paket  könnte  eine  nutzlose  Abhängigkeit  vermeiden,  falls  Programme nicht gegen
       Bibliothek gelinkt wären (sie verwenden keines der Symbole der Bibliothek).
              Exakt das gleiche wie die obige Warnung, aber für mehrere Programme.

       Programm  sollte  nicht  gegen  Bibliothek  gelinkt  werden  (es  verwendet   keines   der
       Bibliotheks-Symbole).
              Das Programm ist gegen eine Bibliothek gelinkt, die es nicht benötigt. Das ist kein
              Problem, aber bei  der  Ladezeit  können  kleine  Leistungsverbesserungen  erreicht
              werden,  indem  diese  Bibliothek nicht in das Programm gelinkt wird. Diese Warnung
              überprüft die gleichen Informationen wie die vorhergehende,  allerdings  für  jedes
              Programm statt global für alle überprüften Programme.

   Fehler
       dpkg-shlibdeps  wird  fehlschlagen,  falls  es  eine  vom  Programm verwendete öffentliche
       Bibliothek  nicht  finden  kann   oder   falls   diese   Bibliothek   keine   zugeordneten
       Abhängigkeitsinformationen   hat   (entweder   eine   Shlibs-  oder  Symbols-Datei).  Eine
       öffentliche Bibliothek hat einen SONAME  und  ist  versioniert  (libirgendwas.so.X).  Eine
       private Bibliothek (wie z.B. ein Erweiterung) sollte keinen SONAME haben und braucht nicht
       versioniert zu sein.

       konnte Bibliothek SONAME-der-Bibliothek benötigt von Programm nicht finden (ihr RPATH  ist
       »rpath«).
              Das  Programm  verwendet  eine  Bibliothek  mit  Namen  SONAME-der-Bibliothek, aber
              dpkg-shlibdeps  konnte  diese  Bibliothek  nicht  finden.  dpkg-shlibdeps  erstellt
              folgendermaßen  eine  Liste  der zu prüfenden Verzeichnisse: im RPATH des Programms
              aufgeführte Verzeichnisse, durch die Option -l hinzugefügte Verzeichnisse,  in  der
              Umgebungsvariable         LD_LIBRARY_PATH         aufgeführte        Verzeichnisse,
              Cross-Multiarch-Verzeichnisse              (z.B.              /lib/arm64-linux-gnu,
              /usr/lib/arm64-linux-gnu),    standardmäßige   öffentliche   Verzeichnisse   (/lib,
              /usr/lib),   in   /etc/ld.so.conf   aufgeführte   Verzeichnisse    und    veraltete
              Multilib-Verzeichnisse  (/lib32,  /usr/lib32,  /lib64,  /usr/lib64).  Dann prüft es
              diese  Verzeichnisse  im  Bau-Baum  des  analysierten  Pakets,  in  den   mit   der
              Befehlszeilenoption    -S    angegebenen    Paketbauverzeichnissen,    in   anderen
              Paketbau-Bäumen, die eine DEBIAN/shlibs- oder  DEBIAN/symbols-Datei  enthalten  und
              schließlich  im  Wurzelverzeichnis.  Falls  die  Bibliothek  nicht  in einem dieser
              Verzeichnisse gefunden wird, erhalten Sie diesen Fehler.

              Falls sich die  nicht  gefundene  Bibliothek  in  einem  privaten  Verzeichnis  des
              gleichen  Pakets  befindet, müssen Sie das Verzeichnis mit -l hinzufügen. Falls sie
              sich in einem anderen gerade zu bauenden Paket befindet, müssen Sie  sicherstellen,
              dass  die »shlibs/symbols«-Datei dieses Pakets bereits angelegt ist und dass -l das
              geeignete Verzeichnis  enthält,  falls  die  Bibliothek  zudem  in  einem  privaten
              Verzeichnis liegt.

       Keine Abhängigkeitsinformationen für Bibliotheksdatei (verwendet von Programm) gefunden.
              Die  von Programm benötigte Bibliothek wurde von dpkg-shlibdeps in Bibliotheksdatei
              gefunden, allerdings konnte  dpkg-shlibdeps  keine  Abhängigkeitsinformationen  für
              diese  Bibliothek  ermitteln.  Um die Abhängigkeit herauszufinden, hat es versucht,
              die Bibliothek mittels dpkg -S Bibliotheksdatei auf  ein  Debian-Paket  abzubilden.
              Dann überprüfte es die zugehörigen Shlibs- und Symboldateien in /var/lib/dpkg/info/
              und die verschiedenen Paketbaubäume (debian/*/DEBIAN/).

              Dieser Fehlschlag kann durch defekte oder fehlende Shlibs-  oder  Symboldateien  im
              Paket  der  Bibliothek  ausgelöst  werden.  Er  könnte  auch  auftreten,  falls die
              Bibliothek im gleichen Quellpaket gebaut  wird  und  die  Shlibs-Datei  noch  nicht
              angelegt wurde (wobei Sie in diesem Fall debian/rules korrigieren müssen, damit die
              Shlibs-Datei erstellt wird bevor dpkg-shlibdeps  aufgerufen  wird).  Defekte  RPATH
              können auch dazu führen, dass die Bibliothek unter nicht-kanonischen Namen gefunden
              wird    (beispielsweise    /usr/lib/openoffice.org/../lib/libssl.so.0.9.8     statt
              /usr/lib/libssl.so.0.9.8),   so  dass  dann  diese  keinem  Paket  zugeordnet  ist;
              dpkg-shlibdeps versucht dies zu umgehen,  indem  es  auf  einen  kanonischen  Namen
              (mittels   realpath(3))   zurückfällt,   allerdings   könnte  dies  manchmal  nicht
              funktionieren. Es ist immer am besten, den RPATH  zu  bereinigen,  um  Probleme  zu
              vermeiden.

              Viele  weitere  Informationen  darüber,  wo nach Abhängigkeitsinformationen gesucht
              wird, können durch einen Aufruf von  dpkg-shlibdeps  im  detaillierten  Modus  (-v)
              erhalten werden. Dies kann nützlich sein, falls Sie nicht verstehen, warum es Ihnen
              diesen Fehler meldet.

SIEHE AUCH

       deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

ÜBERSETZUNG

       Die   deutsche    Übersetzung    wurde    2004,    2006-2019    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.