Linux "ldd" buyrug'ini ishlatish

Ldd buyrug'i sizga ma'lum dastur tomonidan talab qilinadigan umumiy kutubxonalarni ko'rsatish uchun ishlatilishi mumkin.

Bu etishmayotgan qo'shadi mavjud bo'lganda ishlash uchun foydalidir va mavjud funktsiyalar va ob'ektlarni ro'yxatlash uchun ishlatilishi mumkin.

ldd Buyruqning sintaksisi

Ldd buyrug'idan foydalanishda bu to'g'ri sintaksis :

ldd [OPTION] ... FILE ...

Yuqoridagi buyruqdagi [OPTION] joyiga kiritilishi mumkin bo'lgan ldd buyruq kalitlari:

- yordamni chop etish va chiqish - chop etish versiyasi versiyasi haqida ma'lumot va chiqish -d, -data-relocs jarayon ma'lumotlarini ko'chirish -r, - funksiya-qayta ishlov berish ma'lumotlari va funksiyalarni ko'chirib o'tkazish -u, - ishlatilmagan chop etish qo'llanilmaydigan to'g'ridan-to'g'ri bog'liqliklar -v, - barcha ma'lumotlarni chop etish

Ldd buyrug'ini qanday ishlatish kerak

Ldd buyrug'idan qo'shimcha ma'lumot olish uchun quyidagi buyruqni ishlatishingiz mumkin:

ldd -v / path / to / dastur / executable

Chiqarish versiya haqida ma'lumotni, shuningdek, birgalikdagi kutubxonalarga quyidagi yo'llar va manzillarni ko'rsatadi:

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 fayli umuman mavjud bo'lmasa, yo'qolgan kutubxonalarni quyidagi buyruq yordamida topishingiz mumkin:

ldd -d yo'l / to / dastur

Chiqish quyidagicha bo'ladi:

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)

Muhim: Ldd buyrug'ini hech qachon ishonchsiz dasturga qarshi ishlatmang, chunki buyruq aslida uni amalga oshirishi mumkin. Bu butun qaramlik daraxtini emas, balki to'g'ridan-to'g'ri bog'liqlikni ko'rsatadigan xavfsiz alternativdir: objdump -p / path / to / program | grep kerak .

Qanday qilib arizaga yo'l topish mumkin

O'zingizning bog'liqliklaringizni ldd bilan topishni istasangiz, dasturning to'liq yo'lini taqdim etishingiz kerak.

Misol uchun, Firefox-ga yo'l topasiz:

Firefox-ni toping

Biroq, topilma buyrug'i bilan bog'liq muammo, faqatgina olib boriladigan fayllar ro'yxatini emas, balki Firefox-ning hamma joylarida ham shunday bo'ladi:

Ushbu yondashuv biroz ustunlikka ega va sudo buyrug'idan imtiyozlaringizni oshirish uchun foydalanishingiz mumkin, aks holda siz juda ko'p ruxsatnomalarni rad etishingiz mumkin.

Buning o'rniga dasturning yo'lini topish uchun buyruqni ishlatish juda oson:

bu erda olov

Bu safar chiqdi shunday bo'lishi mumkin:

/ Ushr / bin / firefox

/ etc / firefox

/ Ushr / lib / firefox

Firefox uchun birgalikdagi kutubxonalarni topish uchun hozir qilishingiz kerak bo'lgan barcha narsalar quyidagi buyruqlar yoziladi:

ldd / usr / bin / firefox

Buyruqdan chiqadigan narsa shunday bo'ladi:

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 - bu kutubxonaning nomi va oltinchi raqam - bu kutubxona xotiraga yuklanadigan manzil.

Boshqa qatorlardan ko'pini ko'rasiz: => belgisi yo'l bilan kuzatilgan. Bu jismoniy ikkitomonlama yo'l; oltinchi raqam - bu kutubxonaning yuklanishi kerak bo'lgan manzildir.