Linux жүйесінде «ldd» пәрменін пайдалану

Ldd пәрмені кез келген бағдарламада талап етілетін ортақ кітапханаларды көрсету үшін пайдаланылуы мүмкін.

Бұл жетіспейтін тәуелділік болған кезде жұмыс жасау үшін пайдалы және функциялары мен объектілерін тізімдеу үшін пайдаланылуы мүмкін.

ldd Командалық синтаксис

Ldd пәрменін пайдалану кезінде бұл дұрыс синтаксис :

ldd [OPTION] ... FILE ...

Мұнда жоғарыда көрсетілген пәрмендегі [OPTION] нүктесіне енгізуге болатын қол жетімді ldd коммутаторлары:

- Бұл анықтаманы басып шығарыңыз және шығыңыз - шығару нұсқасының мәліметтері мен шығу -d, -data-relocs процесті деректерді ауыстыру -r, --функция-деректерді қайта өңдеу және функцияны ауыстыру -u, - пайдаланылмаған басып шығару пайдаланылмаған тікелей байланысты -v, - барлық ақпаратты басып шығару

Ldd пәрменін қалай пайдалануға болады

Ldd пәрменінен қосымша ақпарат алу үшін келесі пәрменді пайдалануға болады:

ldd -v / path / to / program / executable

Шығарылым нұсқасының ақпаратын, сондай-ақ ортақ кітапханаларға жолдар мен мекен-жайларды көрсетеді, мысалы:

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 жол / to / бағдарлама

Шығару келесіге ұқсас:

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)

Маңызды: ldd пәрменін сенімсіз бағдарламаға қарсы қолданбаңыз, себебі пәрмен оны іске асыруы мүмкін. Бұл тұтас тәуелділікті емес, тікелей тәуелділікті көрсетеді: objdump -p / path / to / program | grep NEEDED .

Бағдарламаға жолды қалай табуға болады

Сіз өзіңіздің тәуелділіктеріңізді ldd түрінде табуды қаласаңыз, оны толық жолмен қамтамасыз етуіңіз керек.

Мысалы, Firefox-ге жолды қалай табуға болады:

/ / firefox атауын табыңыз

Алайда, табу пәрмені проблемасы тек қана орындалатын файлды ғана емес, сонымен бірге Firefox-тің барлық жерінде де көрсетіледі:

Бұл тәсіл - бұл біраз артықшылық және сіз сіздің артықшылықтарыңызды жоғарылату үшін sudo пәрменін пайдалануыңыз қажет болуы мүмкін, әйтпесе сізге рұқсат көп рұқсат етілмеген қателер.

Бағдарламаның жолын табу үшін whereis командасын пайдалану әлдеқайда жеңіл болады:

онда firefox

Бұл жолы шығу келесідей болуы мүмкін:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / 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 - кітапхананың атауы және ондықтың нөмірі - кітапхана жадта жүктелетін мекен-жайы.

Келесі жолдардың көбісін байқасаңыз, => белгісі жолмен жүреді. Бұл физикалық екілікке жол; ондық саны - кітапхана жүктелетін мекен-жайы.