[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