/lib
Auf meinem UNIX-Rechner habe ich beobachtet, dass die Binärdateien standardmäßig im Verzeichnis „ “ nach den abhängigen gemeinsam genutzten Bibliotheken suchen, obwohl das Verzeichnis „/lib“ in den Variablen „ PATH
“ und „ LD_LIBRARY_PATH
“ nicht konfiguriert ist.
Ich sehe unten, dass die Bibliothek „ libssl.so.4
“ im /lib
Verzeichnis „ “ gefunden wird.
bash-3.00$ ldd openssl
/lib/libcwait.so (0x00f86000)
libssl.so.4 => /lib/libssl.so.4 (0x00408000)
Mein ‚PATH‘ und ‚LD_LIBRARY_PATH‘ sind unten:
bash-3.00$ echo $LD_LIBRARY_PATH
:/opt/oracle/product/11.2.0/client32/lib:
bash-3.00$ echo $PATH
/opt/pure/releases/purify.hp.2003a.06.15.FixPack.0214/cache/opt/star-ncf-prod/ep_patch/usr/lib:/usr/ccs/bin:/usr/bin:/usr/ucb:/etc:/bin:.:/opt/ccm71/bin:/opt/oracle/product/11.2.0/client32/bin:/opt/tools/bin:/usr/local/bin
Bitte teilen Sie mir mit, ob die Binärdateien standardmäßig auf das Verzeichnis „/lib“ verweisen.
Antwort1
Bibliotheken (unter Linux OS) suchen in Pfaden von /etc/ld.so.conf
(nicht von $PATH). Nach dem Ändern dieser Datei müssen Sie Folgendes ausführen:
sudo ldconfig
Sie können die Bibliothekssuchpfade nach Befehl anzeigen:
ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012
Standardpfade: Im Standardpfad /lib
, und dann /usr/lib
.Der Linux-Loader und wie er Bibliotheken findet.