Wenn Sie eine Linux-Distribution verwenden, sollte es eine geben - aber nur für Pakete in der Distribution. Für alles, was auf andere Weise installiert wird (wie in /opt
oder /usr/local
), müssen Sie immer noch Ihre ursprüngliche Methode verwenden.
Zum Beispiel würden wir auf Debian-basierte Distro zunächst feststellen, in welchem Paket sich unsere gemeinsam genutzte Bibliothek befindet:
# dpkg -S /usr/lib/libgs.so.9.05 libgs9: /usr/lib/libgs.so.9.05
und dann alle Pakete finden, die diese Bibliothek verwenden (und Kopie in der Datei packages.txt aufbewahren ):
# dpkg-query -W -f='$ $\n' | grep -w libgs9 | awk '' | tee packages.txt ghostscript gimp libgs9 libgs9-common
Wenn Sie genaue Binärdateien kennen müssen, in denen die Bibliotheken verwendet werden, können Sie diese Ausgabe noch ein wenig analysieren:
# while read pkg; do dpkg -L $pkg | xargs -i sh -c 'test -f {} -a -x {} && ldd {} | fgrep -H --label={} libgs.so.9'; done < packages.txt /usr/bin/gs: libgs.so.9 => /usr/lib/libgs.so.9 (0x00007fefe5611000) /usr/bin/ghostscript: libgs.so.9 => /usr/lib/libgs.so.9 (0x00007fbad0d71000) /usr/lib/gimp/2.0/plug-ins/file-ps: libgs.so.9 => /usr/lib/libgs.so.9 (0x00007f75f0a51000)