Provided by:
dpkg-dev_1.16.1.2ubuntu7_all 
NAME
dpkg-shlibdeps - erstelle Substvar-Abhangigkeiten fur
Laufzeitbibliotheken
"UBERSICHT
dpkg-shlibdeps [Option...] [-e]Programm [Option...]
BESCHREIBUNG
dpkg-shlibdeps berechnet Abhangigkeiten von Laufzeitbibliotheken fur
Programme, deren Name als Argument ubergeben werden. Die Abhangigkeiten
werden zu der Datei der Substitutionsvariablen debian/substvars als
Variablennamen shlibs:Abh"angigkeitsfeld hinzugefugt, wobei
Abh"angigkeitsfeld der Feldname einer Abhangigkeit ist. Alle anderen
Variablen, die mit shlibs: beginnen, werden aus der Datei entfernt.
dpkg-shlibdeps hat zwei mogliche Informationsquellen zur Erstellung der
Abhangigkeitsinformationen. Entweder Symbol- oder Shlibs-Dateien.
dpkg-shlibdeps findet fur 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
Abhangigkeiten enthalt). 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
verfugbar sein. Der Paketname wird in zwei Schritten identifiziert:
zuerst wird die Bibliotheksdatei auf dem System gefunden (durch Prufung
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 Abhangigkeitsinformationen,
indem sie die Minimalabhangigkeit fur jedes von der Bibliothek
exportierte Symbol beschreiben. Das Skript versucht, eine Symboldatei
die zu dem Bibliothekspaket gehort, an den folgenden Orten zuzuordnen
(der erste Treffer wird verwendet):
debian/*/DEBIAN/symbols
Informationen uber 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 gegenuber
Symboldateien aus anderen Binarpaketen.
/etc/dpkg/symbols/Paket.symbols.Architektur
/etc/dpkg/symbols/Paket.symbols
Systemabhangige Uberschreibung der Abhangigkeitsinformationen
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 Abhangigkeitsinformationen fur
Laufzeitbibliotheken. Falls nicht durch --admindir
uberschrieben, befinden sich solche Dateien unter /var/lib/dpkg.
Wahrend des Durchsuchens aller vom Programm verwendeten Symbole
erinnert sich dpkg-shlibdeps an die groBte Minimalversion, die von
jeder Bibliothek benotigt wird. Am Ende des Prozesses ist es in der
Lage, die minimale Abhangigkeit fur jede eingesetzte Bibliothek zu
schreiben (vorausgesetzt, die Informationen in den Symbol-Dateien sind
korrekt).
Als SicherheitsmaBnahme 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 benotigt wird, und verwendet diese Version,
falls sie hoher ist als die minimale Version, die beim Durchsuchen der
Symbole ermittelt wurde.
Shlibs-Dateien
Shlibs-Dateien ordnen Bibliotheken direkt Abhangigkeiten zu (ohne auf
die Symbole zu schauen). Daher ist dies oft starker als benotigt, aber
dafur sicher und leicht zu handhaben.
Die Abhangigkeiten fur eine Bibliothek wird an verschiedenen Stellen
nachgeschlagen. Die erste Datei, die Informationen fur die betrachtete
Bibliothek bereitstellt, wird verwendet:
debian/shlibs.local
Paket-beschrankte Uberschreibung der Abhangigkeitsinformationen
von Laufzeitbibliotheken.
/etc/dpkg/shlibs.override
Systemabhangige Uberschreibung der Abhangigkeitsinformationen
von Laufzeitbibliotheken.
debian/*/DEBIAN/shlibs
Informationen uber 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 gegenuber Shlibs-Dateien von anderen
Binarpaketen Vorrang.
Ausgabe von "dpkg-query --control-path Paket shlibs"
Vom Paket bereitgestellte Abhangigkeitsinformationen fur
Laufzeitbibliotheken. Falls nicht durch --admindir
uberschrieben, befinden sich solche Dateien unter /var/lib/dpkg.
/etc/dpkg/shlibs.default
Systemabhangige Vorgaben fur Abhangigkeitsinformationen von
Laufzeitbibliotheken.
Die extrahierten Abhangigkeiten werden direkt verwendet (es sei den,
sie werden als Dubletten herausgefiltert oder sie sind schwacher als
eine andere Abhangigkeit).
OPTIONEN
dpkg-shlibdeps interpretiert nicht-Options-Argumente als Namen von
ausfuhrbaren Programmen, als ob diese mit -eProgramm ubergeben worden
waren.
-eProgramm
Abhangigkeiten aufnehmen, die fur von Programm benotigte
Laufzeitbibliotheken angemessen sind.
-dAbh"angigkeitsfeld
Fuge Abhangigkeiten hinzu, die zum Abhangigkeitsfeld
Abh"angigkeitsfeld der Steuerdatei hinzugefugt werden sollen.
(Die Abhangigkeiten fur dieses Feld werden in die Variable
shlibs:Abh"angigkeitsfeld geschrieben.)
Die Option -dAbh"angigkeitsfeld betrifft alle Programme, die
danach angegeben werden, bis zum nachsten -dAbh"angigkeitsfeld.
Der Standardwert fur Abh"angigkeitsfeld ist Depends.
Falls der gleiche Abhangigkeitseintrag (oder ein Satz von
Alternativen) mehr als einmal in den erkannten
Abhangigkeitsfeldnamen Pre-Depends, Depends, Recommends,
Enhances oder Suggests auftaucht, wird dpkg-shlibdeps die
Abhangigkeit von allen Feldern auBer dem, das die wichtigsten
Abhangigkeiten reprasentiert, entfernen.
-pVariablennamepr"afix
Beginn die Substitutionsvariablen mit Variablennamepr"afix: statt
mit shlibs:. Entsprechend werden alle Substitutionsvariablen,
die mit Variablennamepr"afix: (statt mit shlibs:) beginnen, aus
den Substitutionsvariablen entfernt.
-O Gebe die Variableneinstellung in die Standardausgabe aus, statt
sie zu der Substitutionsvariablendatei (standardmaBig
(debian/substvars) hinzuzufugen.
-tTyp Bevorzuge Abhangigkeitsinformationen fur Laufzeitbibliotheken,
die fur ein vorgegebenes Paket markiert sind. Falls keine
Markierungsinformation verfugbar ist, fallt dies auf unmarkierte
Informationen zuruck. Der Standard-Pakettyp ist >>deb<<.
Abhangigkeitsinformationen fur Laufzeitbibliotheken werden fur
einen vorgegebenen Typ markiert, indem vor sie der Namen des
Typs, ein Doppelpunkt und ein Leerzeichen gesetzt wird.
-Llokalshlibsdatei
Lese die Hinwegsetz-Abhangigkeiten von Laufzeitbibliotheken aus
lokalshlibsdatei statt aus debian/shlibs.local.
-Tsubstvardatei
Schreibe Substitutionsvariablen in Substvardatei; standardmaBig
debian/substvars.
-v Aktiviere ausfuhrlichen Modus. Eine Vielzahl von Nachrichten
wird angezeigt, um zu erklaren, was dpkg-shlibdeps durchfuhrt.
-xPaket
SchlieBe das Paket von den generierten Abhangigkeiten aus. Dies
ist fur Pakete nutzlich, die ELF-Programmdateien (Programme oder
Bibliothekserweiterungen) bereitstellen, die eine Bibliothek im
gleichen Paket verwenden, um selbst-Abhangigkeiten zu vermeiden.
Diese Option kann mehrfach verwendet werden, um mehrere Pakete
auszuschlieBen.
-SPaketbauverzeichnis
Schaue beim Versuch, eine Bibliothek zu finden, zuerst in
Paketbauverzeichnis. Dies ist nutzlich, wenn das Quellpaket
mehrere Spielarten der gleichen Bibliothek baut und Sie
sicherstellen wollen, dass Sie die Abhangigkeit aus einem
bestimmten Binarpaket erhalten. Sie konnen diese Option mehrfach
verwenden: Verzeichnisse werden in der gleichen Reihenfolge vor
Verzeichnissen anderer Binarpakete probiert.
--ignore-missing-info
Falls keine Abhangigkeitsinformationen fur die
Laufzeitbibliothek gefunden werden kann, erfolgt kein
Fehlschlag. Von der Verwendung dieser Option wird abgearten, da
alle Bibliotheken Abhangigkeitsinformationen bereitstellen
sollten (entweder uber shlibs-Dateien oder uber
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 konnen. Bit 0 (Wert=1)
aktiviert die Warnung >>Symbol Sym, verwendet von Programm, in
keiner der Bibliotheken gefunden.<<, Bit 1 (Wert=2) aktiviert
die Warnung >>Abhangigkeit von Bibliothek konnte vermieden
werden<< und Bit 2 (Wert=4) aktiviert die Warnung >>Programm
sollte nicht gegen Bibliothek gelinkt werden<<. StandardmaBig
ist Wert 3: die ersten zwei Warnungen sind standardmaBig aktiv,
die letzte nicht. Setzten Sie Wert auf 7, falls Sie mochten,
dass alle Warnungen aktiv sein sollen.
--admindir=Verz
Andert den Ablageort der dpkg-Datenbank. Der Standardort ist
/var/lib/dpkg.
-h, --help
Zeige den Bedienungshinweis und beende.
--version
Gebe die Version aus und beende sich.
WARNUNGEN
Da dpkg-shlibdeps den Symbolsatz, der von jedem Programm des erstellten
Pakets verwendet wird, analysiert, ist es in mehreren Fallen in der
Lage, Warnungen auszugeben. Sie informieren Sie uber Dinge, die im
Paket verbessert werden konnen. Meistens betreffen diese Verbesserungen
direkt die Quellen der Originalautoren. In der Reihenfolge abnehmender
Wichtigkeit folgen hier die relevanten Warnungen, die auftauchen
konnten:
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
hochstwahrscheinlich eine Bibliothek und muss mit zusatzlichen
Bibliotheken wahrend des Bau-Prozesses gelinkt werden (Option
-lBibliothek des Linkers).
Programm enth"alt eine nicht-aufl"osbare 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
hochstwahrscheinlich eine Erweiterung und das Symbol wird von
dem Programm bereitgestellt, das diese Erweiterung ladt.
Theoretisch verfugt eine Erweiterung nicht uber 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-offentlichen
Verzeichnis gespeichert wird ist allerdings ein starkes
Anzeichen dafur, dass es keine normale gemeinsam benutzte
Bibliothek ist. Falls dieses Programm tatsachlich eine
Erweiterung ist, ignorieren Sie die Warnung. Allerdings besteht
immer die Moglichkeit, 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 beschadigt und muss repariert werden.
Abh"angigkeit von Bibliothek k"onnte vermieden werden, falls Programm
nicht unn"otigerweise dagegen gelinkt w"are (es verwendet keines seiner
Symbole.
Keines der Programme die gegen Bibliothek gelinkt sind verwendet
eines der von der Bibliothek bereitgestellten Symbole. Indem Sie
die Programme korrigierten, vermieden Sie die Abhangigkeit, die
mit dieser Bibliothek verbunden ist (es sei denn, die
Abhangigkeit wird auch durch eine andere Bibliothek generiert,
die diese Bibliothek wirklich verwendet).
Programm sollte nicht gegen Bibliothek gelinkt werden (es verwendet
keines ihrer Symbole).
Das Programm ist gegen eine Bibliothek gelinkt, die es nicht
benotigt. Das ist kein Problem, aber bei der Ladezeit konnen
kleine Leistungsverbesserungen erreicht werden, indem diese
Bibliothek nicht in das Programm gelinkt wird. Diese Warnung
uberpruft die gleichen Informationen wie die vorhergehende,
allerdings fur jedes Programm statt global fur alle uberpruften
Programme.
FEHLER
dpkg-shlibdeps wird fehlschlagen, falls es eine vom Programm verwendete
offentliche Bibliothek nicht finden kann oder falls diese Bibliothek
keine zugeordneten Abhangigkeitsinformationen hat (entweder eine
Shlibs- oder Symbols-Datei). Eine offentliche 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"otigt 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 folgendermaBen
eine Liste der zu prufenden Verzeichnisse: im RPATH des
Programms aufgefuhrte Verzeichnisse, in /etc/ld.so.conf
aufgefuhrte Verzeichnisse, in der Umgebungsvariable
LD_LIBRARY_PATH aufgefuhrte Verzeichnisse und standardmaBige
offentliche Verzeichnisse (/lib, /usr/lib, /lib32, /usr/lib32,
/lib64, /usr/lib64). Dann pruft es diese Verzeichnisse im
Bau-Baum des analysierten Pakets, in den mit der
Kommandozeilenoption -S angegebenen Paketbauverzeichnisse, in
anderen Paketbau-Baumen, die eine DEBIAN/shlibs- oder
DEBIAN/symbols-Datei enthalten und schlieBlich 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, mussen Sie das
Verzeichnis zu LD_LIBRARY_PATH hinzufugen. Falls sie sich in
einem anderen gerade zu bauenden Paket befindet, mussen Sie
sicherstellen, dass die >>shlibs/symbols<<-Datei dieses Pakets
bereits angelegt ist und dass LD_LIBRARY_PATH das geeignete
Verzeichnis enthalt, falls die Bibliothek zudem in einem
privaten Verzeichnis liegt.
Keine Abh"angigkeitsinformationen f"ur Bibliotheksdatei (verwendet von
Programm) gefunden.
Die von Programm benotigte Bibliothek wurde von dpkg-shlibdeps
in Bibliotheksdatei gefunden, allerdings konnte dpkg-shlibdeps
keine Abhangigkeitsinformationen fur diese Bibliothek ermitteln.
Um die Abhangigkeit herauszufinden, hat es versucht, die
Bibliothek mittels dpkg -S Bibliotheksdatei auf ein Debian-Paket
abzubilden. Dann uberprufte es die zugehorigen Shlibs- und
Symboldateien in /var/lib/dpkg/info/ und die verschiedenen
Paketbaubaume ((debian/*/DEBIAN/).
Dieser Fehlschlag kann durch defekte oder fehlende Shlibs- oder
Symboldateien im Paket der Bibliothek ausgelost werden. Er
konnte 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 mussen,
damit die Shlibs-Datei erstellt wird bevor dpkg-shlibdeps
aufgerufen wird). Defekte RPATH konnen auch dazu fuhren, 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))
zuruckfallt, allerdings konnte dies manchmal nicht
funktionieren. Es ist immer am besten, den RPATH zu bereinigen,
um Probleme zu vermeiden.
Viele weitere Informationen daruber, wo nach
Abhangigkeitsinformationen gesucht wird, konnen durch einen
Aufruf von dpkg-shlibdeps im geschwatzigen Modus (-v) erhalten
werden. Dies kann nutzlich sein, falls Sie nicht verstehen,
warum es Ihnen diesen Fehler meldet.
"UBERSETZUNG
Die deutsche Ubersetzung wurde 2004, 2006-2011 von Helge Kreutzmann
<debian@helgefjell.de>, 2007 von Florian Rehnisch <eixman@gmx.de> und
2008 von Sven Joachim <svenjoac@gmx.de> angefertigt. Diese Ubersetzung
ist Freie Dokumentation; lesen Sie die GNU General Public License
Version 2 oder neuer fur die Kopierbedingungen. Es gibt KEINE HAFTUNG.
SIEHE AUCH
deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).
AUTOREN
Copyright (C) 1995-1996 Ian Jackson
Copyright (C) 2000 Wichert Akkerman
Copyright (C) 2006 Frank Lichtenheld
Copyright (C) 2007-2008 Raphael Hertzog
Dies ist Freie Software; lesen Sie die GNU General Public License
Version 2 oder neuer fur die Kopierbedingungen. Es gibt KEINE Haftung.