GNU/Linux >> Znalost Linux >  >> Linux

„který“ ekvivalent pro sdílené knihovny?

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
  1. Chyba při načítání sdílených knihoven libcrypto.so.1.1 – OpenSSL [Oprava]

  2. Odstraňování sdílených linuxových knihoven

  3. Uzamykací mechanismy pro konzistenci sdílené paměti

  1. kontrola sdílených knihoven pro neimplicitní zavaděče

  2. chyba při načítání sdílených knihoven:libncurses.so.5:

  3. Ekvivalent/alternativy pro Alt+Dot v systému Mac

  1. Ekvivalentní maximální hloubka pro hledání v Aix?

  2. Úvod do sdílených knihoven Linuxu (Jak vytvořit sdílené knihovny)

  3. Jaký je moderní ekvivalent pro kouření?