Linux-da "ldd" Command istifadə

Ldd əmri hər hansı bir proqramın tələb etdiyi paylaşılan kitabxanaları göstərmək üçün istifadə edilə bilər.

Bu, itkin düşmüş bir asılılıq olduğunda işləmək üçün faydalıdır və itkin funksiyalar və obyektlərin siyahısı üçün istifadə edilə bilər.

ldd əmr sintaksisi

Ldd komutunu istifadə edərkən düzgün sözdizimdir :

ldd [OPTION] ... FILE ...

Yuxarıda göstərilən əmrdə [OPTION] yerə yerləşdirilə bilən mövcud ldd komut açarları var:

- yardım və çıxışdan çap olun - versiya çap versiyası məlumatı və exit -d, -data-relocs proses data relocations -r, - funksiyası relocs proses data və funksiyası relocations -u, - istifadə olunmamış çap istifadə olunmamış birbaşa bağımlılıkları -v, - bütün məlumatları çap edin

Ldd əmrini necə istifadə etmək olar

Ldd komutundan daha ətraflı məlumat almaq üçün aşağıdakı əmrləri istifadə edə bilərsiniz:

ldd -v / path / to / proqram / çalıştırılabilir

Çıxış versiyası məlumatları və paylaşılan kitabxanalara belə yollar və ünvanları göstərir:

ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

SO faylı heç bir halda yoxdursa, aşağıdakı komutu istifadə edərək eksik kitabxanaları tapa bilərsiniz:

ldd -d yolu / to / proqramı

Çıxış aşağıdakılara bənzəyir:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)

Mühüm: əmr həqiqətən həyata keçirə bilər, çünki ldd əmrini əsassız bir proqrama yönəltməyin. Bu, bütün asılılıq ağacını deyil, doğrudan birbaşa bağlılığı göstərən təhlükəsiz alternativdir: objdump -p / path / to / program | grep NEEDED .

Bir tətbiqə necə yol tapın

Əgər bir sıra yolları edə biləcəyiniz ldd ilə bağlılığını tapmaq istəyirsinizsə, bir proqram üçün tam yol təqdim etməlisiniz.

Məsələn, bu Firefox yolunu necə tapa bilərsiniz:

/ / firefox adı

Bununla yanaşı, tapmaq komutu ilə olan problem yalnız çalıştırılabilir faylları deyil, Firefox'un hər yerdə belə olduğu kimi siyahısı:

Bu yanaşma bir qədər overkill və sudo komandanızı imtiyazlarınızı yüksəltmək üçün istifadə etməli ola bilərsiniz , əksinə çox icazə rədd edilmiş səhvləri alacaqsınız.

Bunun yerinə bir proqramın yolunu tapmaq üçün harada komandanlığı istifadə etmək çox asandır:

burada firefox

Bu dəfə çıxış belə ola bilər:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Firefox üçün paylaşılan kitabxanaları tapmaq üçün indi etmək üçün lazım olan bütün əmrlər aşağıdakı əmrdir:

ldd / usr / bin / firefox

Komanda çıxışı belə bir şey olacaq:

linux-vdso.so.1 (0x00007fff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000)

Linux-vdso.so.1 kitabxananın adıdır və hex sayı kitabxananın yaddaşına yüklənəcəyi ünvandır.

=> Simvolu bir yolla izləndiyini digər xəttlərdən birində görürsünüz. Bu fiziki ikili yol; hex sayı kitabxananın yüklənəcəyi ünvandır.