लिनक्समधील "ldd" कमांड वापरणे

Ldd आदेशचा वापर कोणत्याही दिलेल्या प्रोग्रामद्वारे आवश्यक असलेल्या सामायिक लायब्ररी दर्शविण्यासाठी केला जाऊ शकतो.

गहाळ निर्वाह नसताना हे कार्य करण्यासाठी उपयुक्त आहे आणि गहाळ कार्य आणि ऑब्जेक्ट्स यादी करण्यासाठी वापरले जाऊ शकते.

ldd आदेश सिंटॅक्स

Ldd आदेशचा वापर करतेवेळी हे योग्य सिंटॅक्स आहे :

ldd [OPTION] ... FILE ...

येथे उपलब्ध ldd आदेश स्विच आहेत जे वरील आदेशात [OPTION] स्पॉट मध्ये समाविष्ट केले जाऊ शकतात:

--help हे मदत छापा आणि बाहेर पडणे छपाईची आवृत्ती माहिती आणि बाहेर पडा -d, --डेटा-रिलेक्स प्रक्रिया डाटा relocations -r, - कार्यपद्धती-प्रक्रिया डेटा आणि फंक्शन पुनर्स्थापना -u, - अप्रकाशित अप्रकाशित थेट अवलंबन -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)

जर अशी फाइल अस्तित्वात नसेल तर, आपण खालील कमांडचा वापर करून हरवलेले लायब्ररी शोधू शकता:

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 | grep NEEDED

अनुप्रयोगासाठी पथ कसे शोधावे

आपण एलडीडीसह त्याच्या अवलंबनांची शोधू इच्छित असल्यास आपल्याला एखाद्या अनुप्रयोगासाठी पूर्ण पथ प्रदान करावा लागतो, ज्यामुळे आपण अनेक प्रकारे करू शकता

उदाहरणार्थ, तुम्हाला फायरफॉक्सचा मार्ग सापडतो:

/ -name फायरफॉक्स शोधा

शोध आदेशासह अडचण अशी आहे की तो केवळ एक्झिक्यूटेबलची यादी करणार नाही तर सर्वत्र जेथे Firefox स्थीत आहे त्याप्रमाणेच असेल:

हा दृष्टिकोन एक ओव्हरकिलचा थोडासा भाग आहे आणि आपल्याला आपल्या विशेषाधिकारांना उन्नत करण्यासाठी sudo आदेश वापरण्याची आवश्यकता असू शकते, अन्यथा आपल्याला अनेक परवानगी नाकारलेल्या त्रुटी प्राप्त होतील

ऐप्लिकेशन्सचा मार्ग शोधण्यासाठी त्या कमांडचा वापर करणे अधिक सोपी आहे:

फायरफॉक्स

यावेळी आऊटपुट असे दिसेल:

/ 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 हे लायब्ररीचे नाव आहे आणि हेक्स क्रमांक हा असा पत्ता आहे जिथे लायब्ररी मेमरीमध्ये लोड केली जाईल.

आपण इतर ओळींपैकी काही लक्षात घ्याल की => चिन्ह एका मार्गावरून चालतात. हे भौतिक बायनरीसाठी मार्ग आहे; हेक्स क्रमांक हा पत्ता आहे जिथे लायब्ररी लोड केली जाईल.