Uporabi ldd ukaz, da prikažete skupne knjižnice, ki jih zahteva kateri koli program - uporabno za delo, če manjka odvisnost. V ukazu so tudi manjkajoče funkcije in predmeti.
ldd Command Syntax
Upoštevajte pravilno sintakso za ukaz ldd, da se izognete napakam:
ldd OPTION … DATOTEK …
Uporabite eno ali več razpoložljivih ukaznih stikal ldd, vstavljenih v OPTION mesto v zgornjem ukazu: --help | natisnite to pomoč in zapustite - verzija | informacije o tiskalni različici in izhod -d, -data-relocs | selitev podatkov procesa -r, -function-relocs | podatkov procesa in preseljevanja funkcij -u, -unused | natisnite neuporabljene neposredne odvisnosti -v, --verbose | natisnite vse informacije Za več informacij o programu izvedite naslednji ukaz: $ ldd -v / pot / do / program / izvedljiv
Izhod prikazuje podatke o različici, poti in naslove v knjižnicah v skupni rabi, na primer: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Če datoteka SO SO sploh ne obstaja, lahko najdete manjkajoče knjižnice z naslednjim ukazom: $ ldd -d pot / v / program
Rezultat je podoben naslednjemu: linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ni najdenlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Nikoli ne zaženite ukaza ldd zoper nezaupen program, ker ga ldd dejansko lahko izvede. Namesto tega uporabite varnejšo alternativo, ki prikazuje samo neposredne odvisnosti in ne celotno drevo odvisnosti: $ objdump -p / path / do / program | grep POTREBNO Določiti morate celotno pot do aplikacije, če želite, da bi našli svoje odvisnosti z ldd, kar lahko storite na več načinov. Tako na primer najdete pot do Firefoxa: $ našli / -name firefox
Problem z ukazom find pa je, da ne bo samo seznam izvršljiv, temveč povsod, kjer se Firefox nahaja, na primer: Ta pristop je malo presežen in morda boste morali uporabiti ukaz sudo za povišanje privilegijev, drugače boste verjetno dobili veliko napak, ki jih je dovoljeno dovoliti. Namesto tega je namesto ukaza whereis veliko lažje najti pot aplikacije: $ whereis firefox
Tokrat bo izhod lahko videti takole: / usr / bin / firefox / etc / firefox / usr / lib / firefox Vse kar morate storiti, da najdete skupne knjižnice za Firefox je vnesite ta ukaz: $ ldd / usr / bin / firefox
Izhod iz ukaza bo nekaj takega: 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 je ime knjižnice, številko hexa pa je naslov, kamor bo knjižnica naložena v pomnilnik. V mnogih drugih vrsticah boste opazili, da simbol => sledi pot. To je pot do fizične binarnosti; številka hexa je naslov, kjer bo knjižnica naložena. Kako uporabljati ldd ukaz
Kako najti pot do aplikacije













