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

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

ldd . का प्रयोग करें किसी दिए गए कार्यक्रम के लिए आवश्यक साझा पुस्तकालयों को दिखाने के लिए आदेश। लापता निर्भरता होने पर काम करने के लिए ldd कमांड उपयोगी है। कमांड लापता कार्यों और वस्तुओं को भी सूचीबद्ध करता है।

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

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

ldd [OPTION]... FILE...

एक या अधिक उपलब्ध ldd कमांड स्विच का उपयोग करें, जो ऊपर दिए गए कमांड में [OPTION] स्पॉट में डाले गए हैं:

  • --help:इस सहायता को प्रिंट करें और बाहर निकलें।
  • --संस्करण:संस्करण की जानकारी प्रिंट करें और बाहर निकलें।
  • -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)
लिनक्स में ldd कमांड का उपयोग करना

यदि SO फ़ाइल बिल्कुल भी मौजूद नहीं है, तो आप निम्न कमांड का उपयोग करके लापता पुस्तकालयों को ढूंढ सकते हैं:

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 कमांड का उपयोग करना

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

objdump -p /path/to/program | grep NEEDED
लिनक्स में ldd कमांड का उपयोग करना

किसी एप्लिकेशन का पथ कैसे खोजें

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

उदाहरण के लिए, फ़ायरफ़ॉक्स के लिए पथ खोजने का तरीका इस प्रकार है:

find / -name firefox

हालाँकि, खोज कमांड के साथ समस्या यह है कि यह निष्पादन योग्य और हर जगह जहाँ फ़ायरफ़ॉक्स स्थित है, इस तरह सूचीबद्ध करता है:

/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 कमांड का उपयोग करना

फिर, फ़ायरफ़ॉक्स के लिए साझा पुस्तकालयों को खोजने के लिए, निम्न आदेश दर्ज करें:

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. फाइंड कमांड का उपयोग करके लिनक्स में फाइल कैसे खोजें

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

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

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

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

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