Hledám nástroj, který by se choval stejně jako which
, ale hledat sdílené knihovny (*.so) v adresářích definovaných v $LD_LIBRARY_PATH?
Přijatá odpověď:
Pokud máte spustitelný soubor a chcete vidět, kde sbírá knihovny, spusťte
ldd /path/to/executable
Tím budou zohledněny knihovny na výchozí vyhledávací cestě a také knihovny v rpath tohoto spustitelného souboru, pokud existují.
V systému Linux jsou cesty k systémovým knihovnám z důvodu účinnosti ukládány do mezipaměti. /sbin/ldconfig -p
zobrazuje obsah mezipaměti (je uložen v /etc/ld.so.cache
). Zde je skript, který ukazuje umístění knihovny:
#!/bin/sh
if [ -n "$LD_LIBRARY_PATH" ]; then
set -f
IFS=:
for d in $LD_LIBRARY_PATH; do
if [ -e "$d/$1" ]; then echo "$1"; fi
done
fi
/sbin/ldconfig -p |
awk -v needle="$1" '$1 == needle {sub(/.* => /, ""); print}'
Linux – Jak streamovat místní video do webové kamery pomocí Ffmpeg?
Existuje inverzní příkaz k řezání?