Alle Dateien finden, die mit einer bestimmten Bibliothek unter Linux verbunden sind

378
slowpoison

Ich könnte möglicherweise ein Skript schreiben, um eine Kombination aus find, ldd und grep zu erstellen, aber ich wollte herausfinden, ob es einen besseren Weg gibt.

Wenn die Bibliothek beispielsweise /usr/lib/libmhash.so.2 ist, würde ich gerne alle Binaries auf dem System wissen, die mit ihr verlinkt sind.

1

1 Antwort auf die Frage

0
user55325

Ich kenne keine Standardmethode, um dies zu tun, ohne jede Binärdatei zu untersuchen. Was Sie tun können, obwohl es nicht ganz dasselbe ist, ist die Abhängigkeitsinformationen in Ihrem Paketmanager. Wenn Sie eine Debian-basierte Distribution verwenden, apt-cache showpkg <package>werden unter anderem "umgekehrte Abhängigkeiten" angezeigt - eine Liste aller Pakete, die von diesem Paket abhängen.

Die folgenden Pakete hängen beispielsweise libmhash2von meinem System ab:

Reverse Depends:  libmhash2:i386,libmhash2 yubiserver,libmhash2 wxhexeditor,libmhash2 wit,libmhash2 vdetelweb,libmhash2 thunar-gtkhash,libmhash2 steghide,libmhash2 python-mhash-dbg,libmhash2 python-mhash,libmhash2 proxytunnel,libmhash2 passwordmaker-cli,libmhash2 nd,libmhash2 nautilus-gtkhash,libmhash2 mcrypt,libmhash2 0.8.16-1 mbuffer,libmhash2 libgringotts2,libmhash2 libcsync0,libmhash2 gtkhash,libmhash2 cd5,libmhash2 aide-dynamic,libmhash2 librasqal3,libmhash2 libmhash-dev,libmhash2 0.9.9.9-2 

Natürlich erfahren Sie hier nicht über bestimmte Binärdateien, aber es könnte Ihr Problem lösen (oder zumindest das eines anderen). Wenn nicht, können Sie immer find/ ldd/ verwenden grep.