ld.so(8)

NAZWA
ld.so/ld-linux.so - dynamiczny konsolidator/ładowacz

OPIS
ld.so ładuje biblioteki dzielone wymagane przez program, przygotowuje program do uruchomienia i uruchamia go.

O ile podczas kompilacji nie podano jawnie opcji -static, wszystkie binaria linuksowe będą niekompletne i będą wymagały dalszego konsolidowania podczas działania.

Potrzebne biblioteki dzielone są szukane w następującej kolejności:

o   Przy użyciu zmiennej środowiskowej LD_LIBRARY_PATH (LD_AOUT_LIBRARY_PATH dla programów a.out). Poza binariami suid/sgid, dla których jest to ignorowane.

o   Z pliku buforowego /etc/ld.so.cache który zawiera skompilowaną listę kandydatów, znalezionych w ścieżce bibliotek.

o   W domyślnym katalogu /usr/lib, a potem w /lib.

ŚRODOWISKO

LD_LIBRARY_PATH
    Oddzielona dwukropkami lista katalogów, w których szukać bibliotek ELF podczas wykonywania. Podobne do zmiennej środowiskowej PATH.

LD_PRELOAD
    Oddzielona spacjami lista dodatkowych, podanych przez użytkownika bibliotek dzielonych ELF, którą należy załadować przed wszystkimi innmi. Umożliwia to wybiórczą zamianę funkcji w innych bibliotekach dzielonych. Dla plików binarnych ELF z ustawionym bitem setuid/setgid, ładowane będą tylko biblioteki ze standardowych katalogów, mające także ustawiony bit setgid.

LD_TRACE_LOADED_OBJECTS
    Gdy zmienna ta jest obecna, sprawia, że program wypisze swoje zależności od bibliotek dynamicznych, tak jakby był uruchomiany przez ldd, a nie normalnie.

LD_BIND_NOW
    Gdy zmienna ta jest obecna, sprawia, że dynamiczny konsolidator rozwiąże wszystkie symbole podczas startu programu, a nie wtedy gdy będzie do nich pierwsze odniesienie.

LD_AOUT_LIBRARY_PATH
    Oddzielona dwukropkami lista katalogów, w których szukać bibliotek a.out podczas wykonywania. Podobne do zmiennej środowiskowej PATH.

LD_AOUT_PRELOAD
    Nazwa dodatkowej, podanej przez użytkownika biblioteki dzielonej a.out, którą należy załadować po wszystkich innych. Może to być uzywane do przeciążania funkcji innych bibliotek dzielonych.

LD_NOWARN
    Powstrzymaj ostrzeżenia o bibliotekach a.out o niekompatybilnych numerach minorowych wersji.

LD_KEEPDIR
    Nie ignoruj katalogu w nazwach ładowanych bibliotek a.out. Używanie tej opcji nie jest zalecane.

PLIKI
/lib/ld.so
    Dynamiczny konsolidator/ładowacz a.out
/lib/ld-linux.so.*
    Dynamiczny konsolidator/ładowacz ELF
/etc/ld.so.cache
    Plik zawierający skompilowaną listę katalogów, w których należy szukać bibliotek oraz uporządkowaną listę bibliotek kandydujących.
/etc/ld.so.preload
    Plik zawierający oddzieloną spacjami listę bibliotek dzielonych ELF, które mają być załadowane przed programem.
lib*.so*
    Biblioteki dzielone

ZOBACZ TAKŻE
ldd(1), ldconfig(8).

BŁĘDY

Obecnie, ld.so nie ma narzędzi do usuwania i szukania kompatybilnych lub nowszych wersji bibliotek.

Możliwości ld.so dostępne są tylko dla binariów, skompilowanych przy użyciu libc w wersji 4.4.3 lub wyższej.

AUTORZY
David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus Torvalds, Lars Wirzenius i Mitch D'Souza (niekoniecznie w tej kolejności).