Erkennen Sie fehlende binäre Symbole im Linux-Repository

356
gluk47

Gibt es ein Tool, mit dem überprüft werden kann, dass ein Linux-Repository alle erforderlichen binären Symbole enthält? Ich muss die Vollständigkeit des Repositorys über binäre Symbole überprüfen.

Das heißt, ich muss wissen, dass für jede ausführbare Datei im Repository alle ihre externen Symbole (wie berichtet nm -g) von einer gemeinsam genutzten Bibliothek aus diesem Repository bereitgestellt werden.

Derzeit ist mein Ziel-Repository nicht auf rpm oder deb oder eine bestimmte Distribution beschränkt. Ich muss nur wissen, ob es überhaupt ein solches Tool gibt?

Ich habe das nicht gegoogelt, also bin ich dankbar für zumindest die Schlüsselwörter für Google.

1
Falls auch jemand interessiert ist, habe ich ein Tool für ROSA Linux geschrieben (es ist distro- und paketunabhängig). https://pypi.python.org/pypi/repochecker_binsym/0.9.4 gluk47 vor 8 Jahren 1

1 Antwort auf die Frage

2
Jeff Johnson

ALT Linux hat etwas namens set implementiert: versions als eine Art Abhängigkeit,

Die set: versions ist eine kompakte Symbolkodierung, die das Subsetting effizient erledigt. Dies bedeutet, dass eine ausführbare Datei, die nur einige der Symbole in Bibliotheken verwendet, eine set: version hat, die erkennen kann, ob es sich um eine richtige Teilmenge handelt, dh es fehlen keine Symbole.

Die Implementierung der set: version wurde von Alexey Tourbin geschrieben.

Inzwischen ist es nicht zu schwer, mit nm (1) Listen aller zur Verfügung gestellten Bibliothekssymbole und aller benötigten ausführbaren Symbole zu erstellen.

Wenn Sie ein allgemeines Dateiformat für bereitgestellte / erforderliche Symbole verwenden und Duplikate mithilfe von "sort -u" alphabetisieren und entfernen, können Sie einfach die beiden Dateien unterscheiden, um sicherzustellen, dass keine nicht aufgelösten Symbole vorhanden sind.