[so] [TechQ] LD_LIBRARY_PATH

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Mon Apr 18 13:28:21 EEST 2011


On 04/15/2011 09:40 PM, Adrian Scoica wrote:
>>>> Ce rol are LD_LIBRARY_PATH? Cum este folosită și de cine? Se poate
>>>> îndeplini și altfel rolul de care este responsabilă variabila?
> 
> Atunci cand un ELF foloseste biblioteci partajate, in mometul
> executiei este necesara rezolvarea dependintelor pentru simbolurile
> externe.

Chiar a dependențelor :-P

> Cu alte cuvinte, executabilul vine cu un set de simboluri
> nerezolvate despre care se "promite" ca se vor pune in legatura cu cod
> real abia in momentul rularii.
> 
> Un executabil se asteapta sa gaseasca simbolurile sale nerezolvate in
> biblioteci partajate (care au un anumit nume).
>
> In aceste conditii, am vrea sa specificam sa caute fisierele partajate
> in alte locatii. Putem instrui loaderul cu privire la locatia unde sa
> caute preferential folosidn variabila de mediu LD_LIBRARY_PATH. Cel
> mai simplu se vede daca folosesc un exemplu concret:
> 
> Din aceste motive, n-ar trebui sa se abuzeze de aceasta variabila de
> mediu, si este chiar contraindicat sa scrii executabile care folosesc
> biblioteci partajate si au pretentia ca acele biblioteci sa fie in
> alte locatii non-standard, pentru ca nu ar trebui sa pretinzi de la
> saracul user sa "dea la fire" pana ii pleaca aplicatia din loc.

Perfect.

Ai spus că este contraindicată "abuzarea" acestei variabile, lucru adevărat.

Ai precizat, de asemenea, că loader-ul este cel care folosește această
variabilă (nu linker-ul).

Cum altfel poate loader-ul să găsească bibliotecile partajate? Cum este
găsită, spre exemplu, biblioteca standard C partajată (libc.so)?

Răzvan


More information about the so mailing list