Nggunakake "ldd" Command ing Linux

Printah ldd bisa digunakake kanggo nuduhaké pustaka bebarengan sing dibutuhake dening program apa wae.

Iki migunani kanggo nggoleki nalika ana ketergantungan sing ilang lan bisa digunakake kanggo nulis fungsi lan obyek sing ilang.

Sintaks LDD

Iki minangka sintaks sing bener nalika nggunakake perintah ldd:

ldd [OPTION] ... FILE ...

Ing kene ana tombol perintah ldd sing bisa dilebokake ing [OPTION] titik ing printah ndhuwur:

--Rikul print this help and exit - informasi versi cetak versi lan exit -d, - data relokasi data -data-relocs -r, --fungsi-relocs data proses lan fungsi relokasi -u, - tanpa print dependensi langsung sing ora dienggo -v, - nyetak kabeh informasi

Cara migunakake Command ldd

Sampeyan bisa nggunakake printah ing ngisor iki kanggo njupuk katrangan luwih saka sembarang printah ldd:

ldd -v / path / to / program / executable

Output nuduhake informasi versi uga path lan alamat menyang perpustakaan bebarengan, kaya iki:

libido.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6

Yen file SO ora ana ing kabeh, sampeyan bisa nemokake pustuli sing ilang nggunakake printah ing ngisor iki:

ldd -d path / to / program

Output mirip karo:

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)

Penting: Aja nglakoni perintah ldd marang program sing ora bisa dipercaya amarga perintah kasebut bisa bener nglakokaké. Iki minangka alternatif sing luwih aman sing nuduhake mung dependensi langsung lan ora sakabehe pokok ketergantungan: objdump -p / path / to / program | grep NEEDED .

Cara Nggoleki Path menyang Aplikasi

Sampeyan kudu nyedhiyani path lengkap menyang aplikasi yen sampeyan pengin golek dependensi karo ldd, sing sampeyan bisa nindakake sawetara cara.

Contone, iki carane nemokake path kanggo Firefox :

golek / -name firefox

Masalah karo dhaptar pangertèn , nanging, ora mung bakal bisa dieksekusi nanging ing endi wae ana ing Firefox, kaya iki:

Pendekatan iki minangka bit saka overkill lan sampeyan kudu nggunakake perintah sudo kanggo ngangkat hak-hak sampeyan, sing liyane sampeyan bisa njaluk persil ijin sing ora ditolak.

Iku luwih gampang kanggo nggunakake command whereis kanggo nemokake path aplikasi:

whereis firefox

Wektu iki output bisa katon kaya iki:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Kabeh sing perlu dilakoni saiki kanggo nemokake pustaka bebarengan kanggo Firefox ngetik perintah ing ngisor iki:

ldd / usr / bin / firefox

Output saka perintah bakal kaya iki:

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)

The linux-vdso.so.1 yaiku jeneng perpustakaan lan nomer hex minangka alamat ing ngendi perpustakaan bakal dimuat ing memori.

Sampeyan bakal sok dong mirsani ing akeh baris liya yen simbol => disusul path. Iki minangka path menyang binary fisik; Nomer hex yaiku alamat ngendi perpustakaan bakal dimuat.