Използвай ДЛД команда за показване на споделените библиотеки, изисквани от която и да е програма - полезна за обработка при липса на зависимост. Командата също така посочва липсващи функции и обекти.
ldd команден синтаксис
Наблюдавайте правилния синтаксис за командата ldd, за да избегнете грешки:
ldd ОПЦИЯ … ФАЙЛ …
Използвайте един или повече от наличните ключове за командата ldd, поставени в ВАРИАНТ място в горната команда: --help | отпечатайте тази помощ и излезте - версия отпечатване на информация за версиите и излизане -d, --data-relocs | обработка на данни -r, -function-relocs | обработка на данни и функционални премествания -u, --unused | отпечатване на неизползвани директни зависимости -v, --verbose | отпечатайте цялата информация Изпълнете следната команда, за да получите повече информация за дадена програма: $ ldd -v / path / to / програма / изпълним
Резултатът показва информация за версията, както и пътищата и адресите към споделените библиотеки, както следва: $ 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 файлът изобщо не съществува, можете да намерите липсващите библиотеки, като използвате следната команда: $ ldd -d път / към / програма
Резултатът е подобен на следния: linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => не е foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Никога не стартирайте командата ldd срещу ненадеждна програма, защото LDD може да я изпълни. Вместо това използвайте по-безопасна алтернатива, която показва само директните зависимости, а не цялото дърво на зависимост: $ objdump -p / path / to / програма grep Нужда Трябва да предоставите пълния път към приложението, ако искате да намерите неговите зависимости с ldd, което можете да направите по няколко начина. Например, така ще откриете пътя към Firefox: $ find / -name firefox
Проблемът с командата за намиране обаче е, че той не само ще покаже изпълнимия файл, но и навсякъде, където се намира Firefox, както следва: Този подход е малко преувеличен и може да се наложи да използвате командата sudo, за да издигнете вашите привилегии, в противен случай вероятно ще получите много грешки, отказани от разрешение. Вместо това е много по-лесно да използвате командата whereis, за да намерите пътя на приложението: $ whereis firefox
Този път изходът може да изглежда така: / ЮЕсАр / хамбар / Firefox / И т.н. / огън / ЮЕсАр / ИЪ / Firefox Всичко, което трябва да направите сега, за да намерите споделените библиотеки за Firefox, е да въведете следната команда: $ ldd / usr / bin / firefox
Резултатът от командата ще бъде нещо като това: linux-vdso.so.1 (0x00007ffff8364000)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 е името на библиотеката и шестнадесетичното число е адресът, в който библиотеката ще бъде заредена в паметта. Ще забележите на много от другите редове, че символът => е последван от път. Това е пътят до физическото двоично устройство; шестнадесетичния номер е адресът, в който ще бъде заредена библиотеката. Как да използвате командата ldd
Как да намерите пътя към приложението




