Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

लिनक्स में ldd कमांड का उपयोग

किसी दिए गए प्रोग्राम द्वारा आवश्यक शेयर्ड लाइब्रेरी को दिखाने के लिए ldd कमांड का उपयोग करें। ldd कमांड यह पता लगाने के लिए उपयोगी है कि कब कोई लापता निर्भरता है। कमांड लापता फंक्शन और ऑब्जेक्ट को भी सूचीबद्ध करता है।

ldd कमांड सिंटैक्स

त्रुटियों से बचने के लिए ldd कमांड के लिए उचित सिंटैक्स का पालन करें:

ldd [OPTION]... FILE...

उपरोक्त कमांड में [OPTION] स्थान पर डाले गए उपलब्ध ldd कमांड स्विच में से एक या अधिक का उपयोग करें:

  • --help: यह सहायता प्रिंट करें और बाहर निकलें।
  • --version: संस्करण जानकारी प्रिंट करें और बाहर निकलें।
  • -d, --data-relocs: डेटा रिलोकेशन प्रोसेस करें।
  • -r, --function-relocs: डेटा और फंक्शन रिलोकेशन प्रोसेस करें।
  • -u, --unused: अनयूज्ड डायरेक्ट डिपेंडेंसी प्रिंट करें।
  • -v, --verbose: सभी जानकारी प्रिंट करें।

ldd कमांड का उपयोग कैसे करें

किसी प्रोग्राम के बारे में अधिक जानकारी प्राप्त करने के लिए निम्नलिखित कमांड निष्पादित करें:

ldd -v /path/to/program/executable

आउटपुट संस्करण जानकारी के साथ-साथ शेयर्ड लाइब्रेरी के पथ और पते दिखाता है, जैसे:

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

कभी भी अविश्वसनीय प्रोग्राम के खिलाफ ldd कमांड न चलाएं क्योंकि ldd कमांड इसे निष्पादित कर सकता है। इसके बजाय, एक सुरक्षित विकल्प का उपयोग करें जो केवल डायरेक्ट डिपेंडेंसी दिखाता है न कि पूरा डिपेंडेंसी ट्री:

objdump -p /path/to/program | grep NEEDED

एप्लिकेशन का पथ कैसे ढूंढें

यदि आप ldd के साथ इसकी निर्भरता ढूंढना चाहते हैं तो आपको एप्लिकेशन का पूरा पथ प्रदान करना होगा, जिसे आप कई तरीकों से कर सकते हैं।

उदाहरण के लिए, फायरफॉक्स का पथ ढूंढने का तरीका यहां दिया गया है:

find / -name firefox

हालांकि, find कमांड के साथ समस्या यह है कि यह एक्जीक्यूटेबल और हर जगह सूचीबद्ध करता है जहां फायरफॉक्स स्थित है, जैसे:

/etc/skel/.mozilla/firefox
/home//cache/mozilla/firefox
/home//.mozilla/firefox
/usr/bin/Firefox
/usr/lib/Firefox
/usr/lib/Firefox/Firefox

यह दृष्टिकोण थोड़ा ओवरकिल है और आपको अपना विशेषाधिकार बढ़ाने के लिए sudo कमांड का उपयोग करने की आवश्यकता हो सकती है, अन्यथा आपको बहुत सारे परमिशन-डिनाइड त्रुटियां मिलने की संभावना है।

इसके बजाय एप्लिकेशन का पथ ढूंढने के लिए whereis कमांड का उपयोग करना आसान है:

whereis firefox

इस बार आउटपुट ऐसा दिख सकता है:

/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 लाइब्रेरी का नाम है और हेक्स नंबर वह पता है जहां लाइब्रेरी मेमोरी में लोड होती है।

कई लाइनों पर, => प्रतीक के बाद एक पथ होता है। यह फिजिकल बाइनरी का पथ है। हेक्स नंबर वह पता है जहां लाइब्रेरी लोड होती है।

  1. Linux में Find कमांड का उपयोग करके फ़ाइल ढूंढें Linux में Find कमांड का उपयोग करके फ़ाइल ढूंढें

    Linux find कमांड Linux सिस्टम में सबसे महत्वपूर्ण और आसान कमांड में से एक है। यह, जैसा कि नाम से पता चलता है, आपके द्वारा सेट की गई बहुत अधिक शर्तों और चरों के आधार पर आपके Linux PC पर फ़ाइलें ढूंढ सकता है। आप find कमांड का उपयोग करके अनुमतियों, उपयोगकर्ताओं, समूहों, फ़ाइल प्रकार, तिथि, आकार और अन्य

  1. लिनक्स में  echo  कमांड का उपयोग कैसे करें लिनक्स में 'echo' कमांड का उपयोग कैसे करें

    चाहे आप लिनक्स में पूरी तरह से नए हों या लंबे समय से लिनक्स डेस्कटॉप का उपयोग कर रहे हों, कुछ कमांड्स ऐसी हैं जो समझ में नहीं आ सकतीं। यह विशेष रूप से सच है यदि आप कभी कमांड लाइन में गोता नहीं लगाते, जहां लिनक्स और अन्य यूनिक्स-जैसे ऑपरेटिंग सिस्टम की असली शक्ति निहित है। इनमें से एक है वेटरन echo क

  1. लिनक्स में tee कमांड का उपयोग कैसे करें लिनक्स में tee कमांड का उपयोग कैसे करें

    यदि आप कभी अपने लिनक्स शेल के तहत पाइप और रीडायरेक्शन का उपयोग करते हैं, तो संभावना है कि आपको कभी-कभी tee यूटिलिटी का उपयोग करने की भी आवश्यकता होगी। tee क्या करता है? ls जैसी कमांड आपके वर्तमान डायरेक्टरी की सामग्री प्रदर्शित करेगी। दूसरे शब्दों में, यह इन सामग्री को stdout (स्टैंडर्ड आउटपुट) पर प