Линукс дээр "ldd" командыг ашиглана

Ldd тушаал нь тухайн програмын шаарддаг хуваалцсан сангуудыг үзүүлэхэд хэрэглэгддэг.

Энэ нь алга болсон хамааралгүй үед ажиллахад ашигтай, алга болсон функц болон обьектуудыг жагсаахад ашиглагдаж болно.

ldd Тушаалын синтакс

Энэ нь ldd тушаалыг ашиглахад тохиромжтой синтакс юм :

ldd [OPTION] ... FILE ...

Дээрх тушаалын [OPTION] цэг рүү оруулагдаж болох ldd тушаалын сэлгүүрүүд энд байна:

- энэ тусламжийг хэвлэх, гарах - хэвлэх хувилбарын мэдээллийг болон exit -d, --data-relocs процесс шилжүүлэх өгөгдөл шилжүүлэх -r, --function-relocs өгөгдөл болон функцийг шилжүүлэх -u, - хэвлэх ашиглагдаагүй шууд хамаарал -v, - бүх мэдээллийг хэвлэнэ

Ldd тушаалыг хэрхэн ашиглах талаар

Та ямар ч ldd тушаалаас нэмэлт мэдээллийг авахын тулд дараах тушаалыг ашиглаж болно:

ldd -v / path / to / program / ажиллах боломжтой

Гаралт нь хувилбарын мэдээллийг болон хуваалцсан сан уруу чиглэсэн замууд болон хаягуудыг үзүүлдэг:

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 path / to / program

Гаралт нь дараахтай төстэй байна:

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 | Шаардлагатай байна.

Хэрэглээ рүү хэрхэн замыг олох вэ

Хэрэв та өөрийн хамаарлуудыг ldd-ээр олохыг хүсвэл програмыг бүрэн гүйцэд илгээнэ үү. Үүнийг хэд хэдэн аргаар хийж болно.

Жишээ нь, та Firefox- ийн замыг олох болно:

find / -name firefox

Тушаалын тушаалын хувьд асуудал нь зөвхөн гүйцэтгэх боломжтой боловч Firefox-ийн хаана ч байрладаг төдийгүй дараах байдалтай байна:

Энэ хандлагыг хэтэрхий их хийдэг бөгөөд та өөрийн эрх ямбыг дээшлүүлэхийн тулд sudo тушаалыг ашиглах хэрэгтэй болж магадгүй юм.

Энэ нь аппликешний замыг олохын тулд whereis тушаалыг ашиглах нь илүү хялбар байдаг:

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 нь номын сангийн нэр бөгөөд hex дугаар нь санах ойд багтах хаяг юм.

Та бусад олон мөрөнд => тэмдгийг дагах болно. Энэ бол биет хоёртын зам; hex дугаар нь номын сангийн ачаалах хаяг юм.