Komandu ldd var izmantot, lai parādītu koplietojamās bibliotēkas, kas nepieciešamas jebkurai konkrētai programmai.
Tas ir noderīgi, lai izstrādātu, kad trūkst atkarības, un to var izmantot, lai norādītu trūkstošās funkcijas un objektus.
ldd komandas sintakse
Tas ir pareizs sintakse , lietojot komandu ldd:
ldd [OPTION] ... FILE ...Šeit ir pieejami ldd komandu slēdži, kurus var ievietot [OPTION] vietas iepriekšējā komandā:
- palīdzēt izdrukāt šo palīdzību un iziet no --version drukas versijas informāciju un iziet -d, - datu-relocs procesu datu relocations -r, - funkcija-relocs procesa datus un funkciju pārvietošanu -u, --unused drukāt neizmantotās tiešās atkarības -v, --verbose drukāt visu informācijuKā lietot ldd komandu
Jūs varat izmantot šo komandu, lai iegūtu vairāk informācijas no jebkuras komandas ldd:
ldd -v / path / to / program / executableIzvade parāda informāciju par versiju, kā arī koplietojamo bibliotēku ceļus un adreses, piemēram, šo:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)Ja SO fails vispār nepastāv, jūs varat atrast trūkstošās bibliotēkas, izmantojot šādu komandu:
ldd-d ceļš / uz / programmuIzvade ir līdzīga:
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)Svarīgi: nekad neizmantojiet komandu ldd pret neuzticamu programmu, jo komanda patiešām to var izpildīt. Šī ir drošāka alternatīva, kas parāda tikai tiešās atkarības, nevis visu atkarīgo koku: objdump -p / path / to / program | NEPIECIEŠAMS grep .
Kā atrast ceļu uz pieteikumu
Jums ir jāsniedz pilnīgs ceļš uz lietojumprogrammu, ja vēlaties atrast tās atkarību no ldd, ko jūs varat darīt vairākos veidos.
Piemēram, kā jūs atrast ceļu uz Firefox :
atrast / -name firefoxTomēr problēma ar meklēšanas komandu ir tā, ka tā ne tikai uzskaitīs izpildāmo failu, bet visur, kur atrodas Firefox, tāpat kā šis:
- /etc/skel/.mozilla/firefox
- / home / cache / mozilla / firefox
- /home//.mozilla/firefox
- / usr / bin / Firefox
- / usr / lib / Firefox
- / usr / lib / Firefox / Firefox
Šī pieeja ir nedaudz pārslogota, un jums var būt nepieciešams izmantot sudo komandu, lai paaugstinātu jūsu tiesības, citādi jūs varētu saņemt daudz atļauju liegta kļūdas.
Tā vietā daudz vieglāk izmantot šo komandu, lai atrastu lietojumprogrammas ceļu:
kuris firefoxŠoreiz izlaide varētu izskatīties šādi:
/ usr / bin / firefox
/ etc / firefox
/ usr / lib / firefox
Viss, kas jums jādara tagad, lai atrastu Firefox koplietojamās bibliotēkas, ir šāda komanda:
ldd / usr / bin / firefoxKomandas izeja būs šāda:
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 ir bibliotēkas nosaukums, un hex numurs ir adrese, kurā bibliotēka tiks ielādēta atmiņā.
Jūs ievērosiet daudzās citās līnijās, ka simbols seko ceļam. Šis ir ceļš uz fizisko bināro; hex numurs ir adrese, kurā bibliotēka tiks ielādēta.