Linux లో "ldd" కమాండ్ ఉపయోగించుట

ఏ కార్యక్రమం ద్వారా అవసరమైన షేర్డ్ లైబ్రరీలను మీకు చూపించడానికి ldd కమాండ్ ఉపయోగించవచ్చు.

తప్పిపోయిన డిపెండెన్సీ ఉన్నప్పుడు పనిచేయడానికి ఇది ఉపయోగకరంగా ఉంటుంది మరియు తప్పిపోయిన విధులు మరియు వస్తువులను జాబితా చేయడానికి ఉపయోగించవచ్చు.

కమాండ్ సింటాక్స్ ldd

Ldd కమాండ్ ఉపయోగించినప్పుడు ఇది సరైన సింటాక్స్ :

ldd [OPTION] ... FILE ...

పైన కమాండ్లో [OPTION] స్పాట్ లో చొప్పించగలిగిన అందుబాటులో ఉన్న కమాండ్ స్విచ్లు ఇక్కడ అందుబాటులో ఉన్నాయి:

--help ఈ సహాయం మరియు నిష్క్రమణ --version ప్రింట్ సంస్కరణ సమాచారం మరియు నిష్క్రమణ d, --data-relocs ప్రాసెస్ డేటా relocations -r, - ఫంక్షన్-ప్రాసెస్ డేటా మరియు ఫంక్షన్ relocations -u, --unused ప్రింట్ ఉపయోగించని ప్రత్యక్ష ఆధారపడటం -v, --verbose అన్ని సమాచారం ప్రింట్

Ldd కమాండ్ ఉపయోగించడం ఎలా

మీరు ఏ ldd కమాండ్ నుండి మరింత సమాచారాన్ని పొందటానికి కింది ఆదేశాన్ని ఉపయోగించవచ్చు:

ldd -v / path / to / program / executable

అవుట్పుట్ వెర్షన్ సమాచారం అలాగే భాగస్వామ్యం లైబ్రరీలకు మార్గాలు మరియు చిరునామాలు, ఇలాంటి:

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 => ​​findlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.సో .2 (0x00007fd0c65fd000)

ముఖ్యమైనది: కమాండ్ వాస్తవానికి దీన్ని అమలు చేయకుండా ఒక విశ్వసనీయ ప్రోగ్రామ్కు వ్యతిరేకంగా ldd ఆదేశం ఎన్నడూ అమలు చేయవద్దు. ఇది ఒక ప్రత్యక్ష ప్రత్యామ్నాయం, ప్రత్యక్ష ఆధారపడటం మరియు మొత్తం డిపెండెన్సీ వృక్షం కాదు: objdump -p / path / to / program | grep అవసరం .

ఒక అప్లికేషన్ మార్గం కనుగొనేందుకు ఎలా

మీరు దాని అనుబంధాలను ldd తో గుర్తించదలిస్తే, మీరు అనేక మార్గాలు చేయగలిగితే, మీరు పూర్తి అప్లికేషన్ను అందించాలి.

ఉదాహరణకు, మీరు ఈ ఫైరుఫాక్సుకు మార్గం కనుగొనేలా ఉంది:

/ -పేరు firefox ను కనుగొనండి

కనుగొనే ఆదేశంతో సమస్య ఏమిటంటే, ఇది ఫైర్ఫాక్స్ ఉన్నటువంటి ఎగ్జిక్యూటబుల్ కానీ ప్రతిచోటా మాత్రమే జాబితా చేయబడదు.

ఈ విధానం ఓవర్ కిల్ యొక్క బిట్ మరియు మీరు మీ అధికారాలను పెంచుకోవడానికి సుడో కమాండ్ను ఉపయోగించాల్సి ఉంటుంది, లేకుంటే మీరు చాలా మంది అనుమతిని తిరస్కరించే అవకాశం ఉంది.

ఇది బదులుగా ఒక అప్లికేషన్ యొక్క మార్గం కనుగొనేందుకు whereis కమాండ్ ఉపయోగించడానికి సులభం:

అక్కడే ఫైర్ఫాక్స్

ఈ సమయం అవుట్పుట్ ఇలా కనిపిస్తుంది:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / 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 లైబ్రరీ యొక్క పేరు మరియు హెక్స్ సంఖ్య అనేది చిరునామాలో లైబ్రరీ లోడ్ చేయబడే చిరునామా.

మీరు => ఇతర మార్గాల్లోని చాలామంది గమనించవచ్చు, ఇది = ఒక మార్గం తరువాత. ఇది భౌతిక బైనరీకి మార్గం; హెక్స్ సంఖ్య లైబ్రరీ లోడ్ చేయబడే చిరునామా.